AutoLayout&Masonry&约束的底层

2017-11-03  本文已影响243人  DivilMayCry

核心总结: 自动布局是使用了更贴近自然语言的方式去描述位置的方式, 因此, 其本身具有固定元素以及计算公式, 最后, 得到的数据结果和绝对布局相同, 但是因为, 自动布局需要一个特殊的根节点并且形成节点树之后才能布局, 因此, 可以读取数据的时机不同

自动布局的底层实现原理

自动布局的底层原理

被约束的对象 (item) 以及属性 (attribute)
约束源的对象 (item) 以及属性 (attribute)
二者之间的关系 (=/>/<) 系数 (值得比例) 以及 常数 (constant)

iOS中自动布局的属性元素: 上下左右前后 宽高 中心点 基线 ( 各种边距 ), 本质上就是 frame 的描述, 但是可以通过设置上下形成宽高.

Masonry的使用

动态更新布局:

// 告诉self.view约束需要更新
[self.view setNeedsUpdateConstraints];
// 调用此方法告诉self.view检测是否需要更新约束,若需要则更新,下面添加动画效果才起作用
[self.view updateConstraintsIfNeeded];
[UIView animateWithDuration:0.3 animations:^{
[self.view layoutIfNeeded];
}];

部分问题

其他问题

相关网站
leading 与 left 区别

上一篇 下一篇

猜你喜欢

热点阅读