快速布局工具:AutoLinearLayoutView

1,217 阅读1分钟
原文链接: www.cocoachina.com

本文为投稿文章,作者:qianbin(Github

Demo:

screenshot4.gif 

AutoLinearLayoutView的实现完全基于Auto-Layout,并且支持iOS7以上的系统。

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

screenshot2副本.png

和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。

具体实现和Demo请访问:github.com/qianbin/Aut… 

搜索CocoaChina微信公众号:CocoaChina

微信扫一扫

订阅每日移动开发及APP推广热点资讯
公众号:
CocoaChina