不可不知的:iOS開發的22個詭異技巧

不可不知的:iOS開發的22個詭異技巧_新客網

結合自身的實踐開發經驗總結出了22個iOS開發的小技巧,以非常歡樂的語調輕松解決開發過程中所遇到的各種苦逼難題,光讀著便已忍俊不禁。

1. TableView不顯示沒內容的Cell怎么辦?

類似于圖1,我不想讓下面的那些空顯示。很簡單,添加“self.tableView.tableFooterView = [[UIView alloc] init];”試過都說好,加完這句之后就變成了圖2的樣子。

2. 自定義了leftBarbuttonItem左滑返回手勢失效了怎么辦?

  1. self.navigationItem.leftBarButtonItem?=?[[UIBarButtonItem?alloc]?
  2. initWithImage:img?
  3. style:UIBarButtonItemStylePlain?
  4. target:self?
  5. action:@selector(onBack:)];?
  6. self.navigationController.interactivePopGestureRecognizer.delegate?=?(id<UIGestureRecognizerDelegate>)self;?

3. ScrollView莫名其妙不能在viewController劃到頂怎么辦?

  1. self.automaticallyAdjustsScrollViewInsets?=?NO;?

4. 鍵盤事件寫得好煩躁,都想摔鍵盤了怎么辦?

買個結實的鍵盤;
使用IQKeyboardManager(GitHub上可搜索),用完之后腰也不疼了,腿也不酸了。

5. 為什么我的App老是不流暢,到底哪里出了問題?

如圖:

不可不知的:iOS開發的22個詭異技巧_新客網

這個神器叫做:KMCGeigerCounter ,快去GitHub上搬運吧。

6. 怎么在不新建一個Cell的情況下調整separaLine的位置?

  1. _myTableView.separatorInset?=?UIEdgeInsetsMake(0,?100,?0,?0);?

7. 怎么點擊self.view就讓鍵盤收起,需要添加一個tapGestures么?

  1. -?(void)touchesBegan:(NSSet?*)touches?withEvent:(UIEvent?*)event?
  2. {?
  3. [self.view?endEditing:YES];?
  4. }?

8. 怎么給每個ViewController設定默認的背景圖片?

使用基類啊,少年。

9. 想在代碼里改在xib里添加的layoutAttributes,但該怎么用代碼找?

像拉Button一樣地拉你的約束,nslayoutattribute也是可以拉線的。

10. 怎么像Safari一樣滑動的時候隱藏navigationbar?

  1. navigationController.hidesBarsOnSwipe?=?Yes?

11. 導航條返回鍵帶的title太討厭了,怎么讓它消失?

  1. [[UIBarButtonItem?appearance]?setBackButtonTitlePositionAdjustment:UIOffsetMake(0,?-60)?
  2. forBarMetrics:UIBarMetricsDefault];?

12. CoreData用起來好煩,語法又臭又長怎么辦?

MagicRecord

13. CollectionView怎么實現tableview那種懸停的header?

CSStickyHeaderFlowLayout

14. 能不能只用一個pan手勢來代替UISwipegesture的各個方向?

  1. -?(void)pan:(UIPanGestureRecognizer?*)sender?
  2. {?
  3. typedef?NS_ENUM(NSUInteger,?UIPanGestureRecognizerDirection)?{?
  4. UIPanGestureRecognizerDirectionUndefined,?
  5. UIPanGestureRecognizerDirectionUp,?
  6. UIPanGestureRecognizerDirectionDown,?
  7. UIPanGestureRecognizerDirectionLeft,?
  8. UIPanGestureRecognizerDirectionRight?
  9. };?
  10. static?UIPanGestureRecognizerDirection?direction?=?UIPanGestureRecognizerDirectionUndefined;?
  11. switch?(sender.state)?{?
  12. case?UIGestureRecognizerStateBegan:?{?
  13. if?(direction?==?UIPanGestureRecognizerDirectionUndefined)?{?
  14. CGPoint?velocity?=?[sender?velocityInView:recognizer.view];?
  15. BOOL?isVerticalGesture?=?fabs(velocity.y)?>?fabs(velocity.x);?
  16. if?(isVerticalGesture)?{?
  17. if?(velocity.y?>?0)?{?
  18. direction?=?UIPanGestureRecognizerDirectionDown;?
  19. }?else?{?
  20. direction?=?UIPanGestureRecognizerDirectionUp;?
  21. }?
  22. }?
  23. else?{?
  24. if?(velocity.x?>?0)?{?
  25. direction?=?UIPanGestureRecognizerDirectionRight;?
  26. }?else?{?
  27. direction?=?UIPanGestureRecognizerDirectionLeft;?
  28. }?
  29. }?
  30. }?
  31. break;?
  32. }?
  33. case?UIGestureRecognizerStateChanged:?{?
  34. switch?(direction)?{?
  35. case?UIPanGestureRecognizerDirectionUp:?{?
  36. [self?handleUpwardsGesture:sender];?
  37. break;?
  38. }?
  39. case?UIPanGestureRecognizerDirectionDown:?{?
  40. [self?handleDownwardsGesture:sender];?
  41. break;?
  42. }?
  43. case?UIPanGestureRecognizerDirectionLeft:?{?
  44. [self?handleLeftGesture:sender];?
  45. break;?
  46. }?
  47. case?UIPanGestureRecognizerDirectionRight:?{?
  48. [self?handleRightGesture:sender];?
  49. break;?
  50. }?
  51. default:?{?
  52. break;?
  53. }?
  54. }?
  55. break;?
  56. }?
  57. case?UIGestureRecognizerStateEnded:?{?
  58. direction?=?UIPanGestureRecognizerDirectionUndefined;?
  59. break;?
  60. }?
  61. default:?
  62. break;?
  63. }?
  64. }?

15. 拉伸圖片的時候怎么才能讓圖片不變形?

方法一:

  1. UIImage?*image?=?[[UIImage?imageNamed:@"xxx"]?stretchableImageWithLeftCapWidth:10?topCapHeight:10];?

注:有開發者提醒這個已經棄用,現在的方法叫resizableImageWithCapInsets。

方法二,如圖:

不可不知的:iOS開發的22個詭異技巧_新客網

16. 怎么播放GIF的時候這么卡,有沒有好點的庫?

FlipBoard出品的FLAnimatedImage太適合你了。

17. 怎么一句話添加上拉刷新?

使用SVPullToRefresh庫:

  1. [tableView?addPullToRefreshWithActionHandler:^{?
  2. //?prepend?data?to?dataSource,?insert?cells?at?top?of?table?view?
  3. //?call?[tableView.pullToRefreshView?stopAnimating]?when?done?
  4. }?position:SVPullToRefreshPositionBottom];?

18. 怎么把tableview里Cell的小對勾顏色改成別的顏色?

  1. _mTableView.tintColor?=?[UIColor?redColor];?

19. 本來我的statusbar是lightcontent的,結果用UIImagePickerController會導致我的statusbar的樣式變成黑色,怎么辦?

  1. -?(void)navigationController:(UINavigationController?*)navigationController?willShowViewController:(UIViewController?*)viewController?animated:(BOOL)animated?
  2. {?
  3. [[UIApplication?sharedApplication]?setStatusBarStyle:UIStatusBarStyleLightContent];?
  4. }?

20. 怎么把我的navigationbar弄成透明的而不是帶模糊的效果?

  1. [self.navigationBar?setBackgroundImage:[UIImage?new]?
  2. forBarMetrics:UIBarMetricsDefault];?
  3. self.navigationBar.shadowImage?=?[UIImage?new];?
  4. self.navigationBar.translucent?=?YES;?

21. 怎么改變uitextfield placeholder的顏色和位置?

繼承uitextfield,重寫這個方法:

  1. -?(void)?drawPlaceholderInRect:(CGRect)rect?{?
  2. [[UIColor?blueColor]?setFill];?
  3. [self.placeholder?drawInRect:rect?withFont:self.font?lineBreakMode:UILineBreakModeTailTruncation?alignment:self.textAlignment];?
  4. }?

22. 你為什么知道這么多奇怪的花招?

去Stack Overflow刷問題啊,少年!

轉載于:https://www.cnblogs.com/iamjjh/p/4757860.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256810.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256810.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256810.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux刪除之前的文件日志

linux下每天都在產生LOG日志文件&#xff0c;如果不定期刪除&#xff0c;遲早擠爆硬盤&#xff0c;如果手動刪除&#xff0c;幾次可以&#xff0c;不是長久之計。這些事交給Linux系統就可以解決。 試驗環境&#xff1a; 系統&#xff1a;CentOS 6.5 x64 測試路徑、測試文件名、…

線程操作范例

實例要求&#xff1a; 設計一個線程操作類&#xff0c;要求可以產生三個線程對象&#xff0c;并可以分別設置三個線程的休眠時間。如下所示&#xff1a; 問怎么設計&#xff1f; 分析 從之前學習知道&#xff0c;線程的實現有兩種方式&#xff0c;一種是繼承Thread類&#xff0…

學習筆記(55):Python實戰編程-Scrollbar

立即學習:https://edu.csdn.net/course/play/19711/343118?utm_sourceblogtoedu 1.滾動條ScrollBar&#xff1a; 當列表內容項的內容過多時&#xff0c;就需要使用到這個滾動條來進行拖動顯示更多的其他選項&#xff1b;一般滾動條是和listbox配對使用的 2.注意事項&#xff…

【轉】Unity3D研究院之使用Xamarin Studio調試Unity程序

如果你是在windows上開發&#xff0c;就無視這篇文章吧。 為什么要用Xamarin Studio 你可以看看我之前的文章 http://www.xuanyusong.com/archives/2683 unity4.x 和 unity5.x都可以用Xamarin Studio 來調試&#xff0c;親測&#xff01; 先下載插件&#xff1a;http://files.u…

配置SMB共享 、 配置NFS共享

虛擬機&#xff0c;均要檢測1. Yum是否可用2. 防火墻默認區域修改為trusted3. IP地址是否配置########################################################################################################### samba 文件共享&#xff08;共享文件夾&#xff09; Samba 軟件…

stdout標準輸出、stderr標準錯誤輸出 標準輸入、標準輸出、標準錯誤輸出分別被定義為0、1、2。

$ make > compile.log 2>&1 首先將標準錯誤輸出也重定向到標準輸出中&#xff0c;再將標準輸出重定向到 compile.log 這個文件中。這樣我們就可以將所有的輸出都存儲到文件中了。

centos7 和centos 6的一些區別

平時的我們基本都用CentOS 6 。但是偶爾遇到的就記錄下來了&#xff0c;與大家分享。防火墻[CentOS 6] iptables[CentOS 7] firewalld在7中開啟80端口 firewall-cmd --zonepublic --add-port80/tcp --permanent #出現success表明添加成功復制代碼命令含義&#xff1a…

systemverilog 起步

轉一篇Systemverilog的一個牛人總結&#xff1a; http://blog.sina.com.cn/s/blog_5e9b181a010188re.html 1、合并數組和非合并數組 1&#xff09;合并數組&#xff1a; 存儲方式是連續的&#xff0c;中間沒有閑置空間。 例如&#xff0c;32bit的寄存器&#xff0c;可以看成是4…

學習筆記(56):Python實戰編程-Menu

立即學習:https://edu.csdn.net/course/play/19711/343119?utm_sourceblogtoedu 1.菜單menu: 1&#xff09;彈出式菜單&#xff0c;類似與電腦桌面右擊彈出的菜單成為彈出菜單&#xff1b; 2&#xff09;窗體式菜單&#xff1a;類似于word上面的菜單欄 2.窗體菜單創建的步驟…

SystemCenter2012SP1實踐(19)集成WSUS更新服務器2012

今天我們的任務是配置一臺WSUS&#xff08;Windows更新服務器&#xff09;&#xff0c;以方便后期通過"基線"與其組合&#xff0c;完成虛擬機的系統補丁升級。WSUS是Windows系統運維自動化的一個重要組成部分&#xff0c;通過它&#xff0c;能夠節省我們很多的運維時…

像元尺寸計算

像元尺寸 X 總像素大小 感光芯片尺寸&#xff08;圖像區域大小&#xff09;

win7右鍵點擊文件夾進入命令窗口方法

方法一&#xff1a;按住shift鍵&#xff0c;鼠標右擊&#xff0c;會出現"在此處打開命令窗口"&#xff1b;方法二&#xff1a;修改注冊表&#xff0c;為鼠標右鍵添加打開命令行功能&#xff1b;(1)將下列內容賦值到記事本中&#xff0c;并保存為.reg文件。Windows Re…

教你學會Linux/Unix下的vi文本編輯器

vi編輯器是Unix/Linux系統管理員必須學會使用的編輯器。看了不少關于vi的資料&#xff0c;終于得到這個總結。首先&#xff0c;記住vi編輯器的兩個模式&#xff1a;1、命令模式2、編輯模式。在一個UNIX/Linux的shell命令或者一個以斜杠&#xff08;/&#xff09;、問號&#xf…

C++函數返回引用的含義

引用的意思就是說返回變量的地址而非變量本身。這樣子函double數結束之后存儲返回值的內存單元不會被銷毀&#xff0c;保留了它的地址。 例如下面這個例子: int a1,b; ba; b; 這個例子里執行完之后a為1&#xff0c;而b為2。 但這個例子&#xff1a; int a1; int *b&#xff1b;…

LintCode: 3 Sum

C 把3個數求和&#xff0c;轉變為2個數求和 1. 把數組排序 2. 注意過濾重復值 3. 從前到后遍歷&#xff0c;游標i 4. 從后邊數中找start &#xff0b; end &#xff1d; -arr[i]的2 sum 5. start &#xff0b; end < -arr[i], start 6. start end > -arr[i], end-- 7. s…

$* $@ $# $? $$ $! $0 $_

特殊參數&#xff1a; [xiluhuavm-xiluhua][~]$ set one two three  #使用set命令設置位置參數[xiluhuavm-xiluhua][~]$ echo $*        #打印所有位置參數 one two three[xiluhuavm-xiluhua][~]$ echo $        #打印所有位置參數 one two three[xiluhuavm-…

最優化課堂筆記03:整數規劃

二、整數規劃問題的求解方法&#xff1a;&#xff08;重點&#xff1a;分枝定界法&#xff09; 1.割平面法 1&#xff09;基本思想 2&#xff09;求解步驟 2&#xff09;重點&#xff1a;分枝定界法&#xff08;極大化的問題&#xff09;考試不會分很多次枝&#xff0c;用圖解…

CodeIgniter 2.X 于 PHP5.6 兼容錯誤

本篇文章由&#xff1a;http://xinpure.com/codeigniter-2-x-to-php5-6-compatible-error/ CI 3.0 已兼容此問題 在代碼遷移的過程中&#xff0c;遇到了一個 PHP 版本兼容錯誤 A PHP Error was encounteredSeverity: NoticeMessage: Only variable references should be return…

自動駕駛汽車定位技術

一、高精度地圖 二、汽車定位技術 三、無線通信輔助汽車定位 四、視覺輔助汽車定位 五、自動駕駛高精度地圖與定位實踐