對UIStackView佈局的研究

問題

最近遇到了界面開發效率的問題。如今強烈的感受到,目前的代碼佈局方式過低效。按照一段100%的開發時間來算,代碼佈局就佔據了50%。我想如今減小這個比例,把更多的開發時間放在總體的邏輯上。html

目前來看最合適的方式就是使用UIStackView了。即便是較爲複雜的頁面,老大在目前的版本中用storyboard結合UIStackView也能夠很快速的搭建。前端

這已經能夠說是解決問題了,不過仍是差了一點點。git

剩下的問題在於:github

  • storyboard這樣的GUI界面實在是不適合多人協做,我很難去修改老大那邊的改動
  • 同時我也發現,使用代碼的方式寫UIStackView仍是會遇到冗長的代碼量這個問題,並無減小代碼佈局花費的時間,同時也失去了storyboard這種GUI界面的直觀

總結一下,目前在實際體驗了UIStackView佈局後,這個東西確實好用,但仍是存在一些問題須要解決。因而我開始繼續深刻研究了一下。編程

UIStackView

基本的auto layout佈局,leading,trailing,top,bottom等,都是具體到單個的視圖,所以在使用時,須要對每一個單個的視圖單位都設置這些屬性,這直接就是大量的重複工做。app

在前端領域,有一種flexbox的佈局思想,它的特色是響應式的佈局,好處就是直接節省了上面說的重複工做。蘋果公司也借鑑了這個思想,在auto layout的基礎上封裝了UIStackView這個相似flexbox的抽象視圖。ide

一句話總結就是:佈局

  • 只使用UIStackView這個容器視圖來設置子視圖的位置,而不是重複地逐個設置子視圖的位置

詳情見官方文檔: Auto Layout Guide: Stack Viewspost

可視化格式語言:Visual Format Language

對於須要代碼佈局,不使用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

戴銘的專欄

相關文章
相關標籤/搜索