快速布局工具:AutoLinearLayoutView
croupier
9年前
<h2>Demo</h2> <p><img src="https://simg.open-open.com/show/3eac2210a7537bbb2a10fe4e34b77fc2.gif"></p> <p>AutoLinearLayoutView的实现完全基于Auto-Layout,并且支持iOS7以上的系统。</p> <p>可以在Interface Builder中直接修改属性,便于在Xib/Storyboard中快速构建界面:</p> <p><img src="https://simg.open-open.com/show/0b8b1c54dc9732102bd7d980b1d57e8c.png"></p> <p>和UIStackView相比,它多了Insets属性,少了Distribution和Baseline Relative属性。Insets属性对于UIStackView来说基本无解(额外的约束会冲突)。而Distribution和Baseline Relative属性对AutoLinearLayoutView来说,可以轻松的添加额外的约束来实现。</p> <p>AutoLinearLayoutView充分考虑了内部隐含约束的优先级:</p> <ul> <li> <p>通常,任何添加到其中的View都不会被拉伸,除非将View的Content Hugging Priority设置得足够小(50,相当于Fill属性)。这对开发者更友好,在添加多个View的时候不容易冲突。</p> </li> <li> <p>通常,任何添加到其中的View如果太大,都会将AutoLinearLayoutView撑大,或者自我挤压,或者挤压Sibling,这取决于View的Content Compression Resistance Priority。如果Compression Resistance Priority足够大(950),将会突破Spacing和Insets的约束。</p> </li> <li> <p>不管子View有没有Intrinsic Content Size,子View的Hugging/Compression优先级都会被衡量。这在需要用UIView辅助布局的时候会很有用 ,UIStackView并没有考虑这一点。</p> </li> </ul> <p>另外,AutoLinearLayoutView支持动态添加/移除子View。</p> <p> </p>