转载

快速布局工具:AutoLinearLayoutView

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

Demo:

快速布局工具:AutoLinearLayoutView 


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

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

快速布局工具:AutoLinearLayoutView

和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请访问:https://github.com/qianbin/AutoLinearLayoutView 

正文到此结束
Loading...