快速布局工具:AutoLinearLayoutView

croupier 8年前發布 | 12K 次閱讀 iOS開發 移動開發

Demo

AutoLinearLayoutView的實現完全基于Auto-Layout,并且支持iOS7以上的系統。

可以在Interface Builder中直接修改屬性,便于在Xib/Storyboard中快速構建界面:

和UIStackView相比,它多了Insets屬性,少了Distribution和Baseline Relative屬性。Insets屬性對于UIStackView來說基本無解(額外的約束會沖突)。而Distribution和Baseline Relative屬性對AutoLinearLayoutView來說,可以輕松的添加額外的約束來實現。

AutoLinearLayoutView充分考慮了內部隱含約束的優先級:

  • 通常,任何添加到其中的View都不會被拉伸,除非將View的Content Hugging Priority設置得足夠小(50,相當于Fill屬性)。這對開發者更友好,在添加多個View的時候不容易沖突。

  • 通常,任何添加到其中的View如果太大,都會將AutoLinearLayoutView撐大,或者自我擠壓,或者擠壓Sibling,這取決于View的Content Compression Resistance Priority。如果Compression Resistance Priority足夠大(950),將會突破Spacing和Insets的約束。

  • 不管子View有沒有Intrinsic Content Size,子View的Hugging/Compression優先級都會被衡量。這在需要用UIView輔助布局的時候會很有用 ,UIStackView并沒有考慮這一點。

另外,AutoLinearLayoutView支持動態添加/移除子View。

 

 本文由用戶 croupier 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!