最近在優(yōu)化項(xiàng)目,項(xiàng)目中一些storyboard中寫的界面,報了一些約束錯誤,還有的storyboard中場景有10多個,打開起來非常慢。修復(fù)問題的同時總結(jié)一下思考。
一、關(guān)于storyboard/xib還是代碼
以前自己采用的是xib來寫控件,vc界面采用代碼來寫。
- 優(yōu)點(diǎn):這樣的好處是不用再因?yàn)閟b中需要修改導(dǎo)致沖突,并且在一個sb中,場景很多的情況下,打開速度慢的情況??丶脁ib來寫提高了效率。
- 缺點(diǎn):無法直觀看到頁面與頁面直接跳轉(zhuǎn),界面展示。
采用sb+xib方式:
- 優(yōu)點(diǎn):vc中省去了許多界面初始化代碼,直觀看到頁面與頁面跳轉(zhuǎn)到哪個頁面,寫界面速度快很多,不再是重復(fù)寫一些初始化代碼。
- 缺點(diǎn):多人維護(hù)sb時,修改sb容易產(chǎn)生沖突。sb頁面比較多時,開打速度慢。
總結(jié):不管使用純代碼、sb/xib與代碼配合還是純sb+xib,出發(fā)點(diǎn)都是要提高效率,便于維護(hù)。使用sb時,一個sb盡可能維持在5個vc左右,減少后期維護(hù)產(chǎn)生沖突的幾率,也提高打開sb的速度。復(fù)雜動態(tài)的布局方式建議使用代碼的方式,避免因?yàn)閯討B(tài)約束產(chǎn)生沖突。代碼的方式,盡可能將控件分離到單獨(dú)一個view文件中。如果只是一個簡單的button在vc上,相關(guān)初始化代碼可以在集中寫在getter上。
二、調(diào)試界面Tips
在修改調(diào)試界面時,有時經(jīng)常找不到界面在哪個文件?;蛘哒f想定位一個按鈕在哪里文件代碼里。
- 如果是界面中有自定義控件,通過視圖層級可以看出類名。
- 如果界面只是簡單只用UIButton,而想修改這個button實(shí)例,通過viewcontroller層級先定位到vc??梢允褂胠ldb打印出當(dāng)前控制viewcontroller層級,當(dāng)定位到vc時,再去尋找相關(guān)代碼就比較容易了。可以使用chisel插件,這樣lldb中pvc命令就可以打印出。chisel還有其他簡化命令,提高工作效率。
三、參考文章:
https://onevcat.com/2013/12/code-vs-xib-vs-storyboard/
http://www.cocoachina.com/ios/20160714/17035.html