最近遇到了界面開發效率的問題。如今強烈的感受到,目前的代碼佈局方式過低效。按照一段100%的開發時間來算,代碼佈局就佔據了50%。我想如今減小這個比例,把更多的開發時間放在總體的邏輯上。html
目前來看最合適的方式就是使用UIStackView了。即便是較爲複雜的頁面,老大在目前的版本中用storyboard結合UIStackView也能夠很快速的搭建。前端
這已經能夠說是解決問題了,不過仍是差了一點點。git
剩下的問題在於:github
總結一下,目前在實際體驗了UIStackView佈局後,這個東西確實好用,但仍是存在一些問題須要解決。因而我開始繼續深刻研究了一下。編程
基本的auto layout佈局,leading,trailing,top,bottom等,都是具體到單個的視圖,所以在使用時,須要對每一個單個的視圖單位都設置這些屬性,這直接就是大量的重複工做。app
在前端領域,有一種flexbox的佈局思想,它的特色是響應式的佈局,好處就是直接節省了上面說的重複工做。蘋果公司也借鑑了這個思想,在auto layout的基礎上封裝了UIStackView這個相似flexbox的抽象視圖。ide
一句話總結就是:佈局
詳情見官方文檔: Auto Layout Guide: Stack Viewspost
對於須要代碼佈局,不使用storyboard的開發者來講,蘋果公司其實也考慮到了。蘋果官方文檔裏,在講自動佈局的章節附錄裏就提出了「Visual Format Language「:學習
詳情參考:Auto Layout Guide: Visual Format Language
它的特色其實很簡單,就是在文字代碼裏達到趨近於圖形效果的代碼格式,最直接的目的就是儘可能一目瞭然。
用VFL來作代碼佈局有一個比較好的實踐:
github地址:STMAssembleView
讀了這篇The Key To Accelerating Your Coding Skills文章,裏面提到了編程技能的兩個拐點,在這兩個拐點前,你會很痛苦,而且越接近拐點,越痛苦。可一旦越過拐點後,成長速度開始加快,也會愈來愈享受。
我以爲我如今就在接近拐點的過程當中,很明顯的能感受到。同時因爲「痛苦」愈來愈劇烈,個人自我懷疑也愈來愈加深。怎麼辦呢?再咬咬牙堅持一下吧。
而後,在學習鑽研的過程當中,我也深入地意識到找第一手資料是多麼的重要。一手資料的好處很是很是多,不贅述了。這個道理其實很容易懂,但它難的地方在於:其實處理第一手資料也挺難的,須要比較多的積累和訓練。很少說,這也是一個須要努力積累的點。
參考文檔:
Auto Layout Guide: Understanding Auto Layout
戴銘的專欄