標籤:
最近要換地方工作了,整理下之前遇到的問題。
1、StatusBar View controller-based status bar appearance狀態列屬性設定後,plist修改後才有效。 2、Auto LayoutHugging priority 確定view有多大的優先順序阻止自己變大。Compression Resistance priority確定有多大的優先順序阻止自己變小。簡單來說,Hugging的收縮的意思,就是當有A,B兩個元素連在一起,當他們的superView變大的時候(A 和 B也要變大),哪個有更大的優先順序保持原來的大小;Compression Resistance 是壓縮阻力的意思,就是A、B兩個元素連在一起,當他們的superView變小的時候(A和B也要變小),哪個有更大的優先順序保持原來大小; 3、modal半透明頁面彈出一個半透明的viewController:在ib設定被彈出的展示方式:OverCurrentContext然後再調用 presentViewController即可。 4、Xcode7 卡頓問題 Source Control 裡面的 Automatically 全部關掉 ; 設定 >> 通用 >> 最近使用項目 (改成0) / 允許在這台 Mac 和 iCloud 裝置之間使用 Handoff (關掉); 5、viewController生命週期disappear 裡面做一些取消監聽的操作時,要考慮到Modal一個viewController的時候,會調用disappear;同時在navigationController poptoroot的時候,中間的一些VC不會調用disappear。 6、ReactiveCocoaRAC是基於KVO的,而NSMutableArray並不會在調用addObject或removeObject時發送通知;解決方案可以通過NSArray來解決;與此類似,Textfield的text如果是代碼設定值,不會觸發訊號。view.frame 不參與KVO,bounds可以。 7、Cell 自適應當實用UITableViewCell 的自動延伸時候,cell會自動添加一個height的約束。(可以把某個view 的height改成pro = 750,不會有warning)一個類似朋友圈添加圖片的功能(UICollectionView實現,通過修改constraint高度,讓view自適應)。當添加一個圖片的時候,如果是放在UIViewController裡面,修改constraint 的值,會導致view重新layout。如果是放在UItableviewCell 裡面的,修改constrant的值,會導致cell的重新layout,但是不會導致tableview layout。需要在cell調用一次layoutIfneed。 8、架構MVC 和 MVVM 的關於網路層的區別:MVC裡面的Model可以做成單例,Message 可以獨立出去,通過單例回調Model。model通過notify通知controller。MVVM裡面的model,不是單例,同時與controller的狀態綁定,message整合在ViewModel裡面。 9、AFNetworking constructingBodyWithBlock AFNetworking upload的時候才用這個參數如果是普通的post,不能帶有這個參數。(對於不同的任務,AFNetworking會產生不同的task) 10、ReactiveCocoa 與 UI顯示RACOberserver 用於變動的內容;如果是使用者操作,發送協議,協議回來更新的,可以用subscribenext,在next中重新整理顯示;flattenMap 不透傳completed,裡面的訊號完成了只是外面的訊號的開始,外面的訊號完成了才有completedtext_signal 一般用next 不用completed 11、UISearchControllerif the
UISearchController is deallocated before its view is loaded, this warning will appear.在用搜尋的時候產生warning,那麼下面的函數可以解決。- (void)dealloc {
[self.mySearchController.view removeFromSuperview];} 12、視圖切換視圖A modal 視圖M 之後,如果要在modal dismiss跳轉,記得延遲到下一個runloop(或者直接延遲0.1s) 13、objective-c A繼承B,A重寫了B的方法test,那麼當A 調用 test是A之後的方法。在super 中,self還是A,調用的還是A的test。
iOS 開發小記 (七)