iOS組編程規(guī)范

一,UI篇

? ? ? ? ?版本迭代的過程中,大部分的時間在和UI打交道,UI開發(fā)也是iOS開發(fā)里面比較辛苦的地方。從autoResize(純frame布局)到autoLayout(通過約束布局,其實(shí)是通過約束計算frame來布局),iOS布局的痛點(diǎn)在高度的計算。

? ? ? ? 上面談到的是開發(fā)難度,此外,從維護(hù)難度上來講,如果UI人員對界面做了修改,這里針對小的修改,如果是大的修改,可能重新做的可能性更大,不涉及維護(hù),如果是小的修改,我們更愿意在原有的基礎(chǔ)上去維護(hù)。維護(hù)的過程,痛點(diǎn)在于模塊上,當(dāng)然還涉及高度計算。如果對一個View,沒有很好的分塊,所以子View都維護(hù)到同一個層級,再加上使用autolayout,那么對于開發(fā)和維護(hù)來說,都是災(zāi)難。

? ? ? ?為此,總結(jié)一套高效的UI開發(fā)規(guī)范,提高開發(fā)和維護(hù)速度,是十分有必要的。具體規(guī)范如下:

1,分塊

最重要的地方在于分塊,分塊的原則是從上到下,從左到右,塊里面內(nèi)容不宜過多,最好和產(chǎn)品邏輯對應(yīng)起來。

先從上到下,分成一層一層堆疊,然后對具體某一層,再采取從上到下的原則,直到縱向不可再分,然后針對某一塊,進(jìn)行橫向劃分,從左到右。

2,采用autolayout還是autoResize?

眾所周知,同一個view層級,不可以autolayout和autoResize布局并存,采用autolayout的view層級使用autoResize設(shè)置frame是無效的。

2.1 如果采用純代碼的方式繪制UI,那么autoResize就是一個很好的選擇,整個模塊采用設(shè)置frame的方式進(jìn)行布局。采用autoResize的話,就不用考慮約束的沖突,以及版本兼容性問題。干凈清爽。

2.2 平時高強(qiáng)度的開發(fā)過程中,大部分人采用的是xib或者storyboard進(jìn)行畫界面,采用這兩種方法進(jìn)行開發(fā)的時候,采用autolayout就是首選。當(dāng)然,也可以采用autoResize。純代碼與xib的區(qū)別在于,xib中的組件會實(shí)例成對象,這樣避免了純代碼實(shí)例化組件的邏輯,只需要設(shè)置frame即可。

二,MVC我們需要注意什么

MVC的具體結(jié)構(gòu)不用多說。只需要說一下核心。

1.Model控制View,View的狀態(tài)無記憶。

具體表現(xiàn)在一下幾個方面:

1.1 Model是我們首先關(guān)注的東西,必須有Model才顯示UI,缺省可以看作是特殊情況。

1.2 View的狀態(tài)無記憶,什么model對應(yīng)什么view,view的狀態(tài)不能受之前model狀態(tài)的影響,若要做到這一點(diǎn),需要牢記有if的地方,一定不要忘了else。

2.Controller這一層,只處理模塊(可以看作是View模塊)邏輯。模塊內(nèi)部邏輯,由模塊本身負(fù)責(zé)處理,或者共用的邏輯抽出來工具類來處理。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容