Slide 1

Slide 1 text

Auto Layout

Slide 2

Slide 2 text

Frame + autoresizingMask Auto Layout

Slide 3

Slide 3 text

basis • SuperView的位置确定了,那么SubView的位置就可 以被确定 • SuperView -> SubView的{x, y, width, height} -> SubView的位置

Slide 4

Slide 4 text

Cassowary You provide rules, whether through IB or through code, and the Auto Layout system transforms those rules into view frames.

Slide 5

Slide 5 text

Constraint y = kx + b view1的某个属性 = k × view2的某个属性 + b

Slide 6

Slide 6 text

NSLayoutConstraint + (instancetype)constraintWithItem:(id)view1 attribute:(NSLayoutAtribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2 attribute:(NSLayoutAttribute)attr2 multiplier:(CGFloat)multipler constant:(CGFloat)c

Slide 7

Slide 7 text

开始Auto Layout • No frame & autoresizingMask • ⽗父View当前的⼤大⼩小是不可靠的

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

思路 • 合理的把⼦子View分组 • 确定⼤大致依赖关系 —— 要想确定A的位置,⾸首先我得知道B 的位置 & 只要B的位置定下来了,那么A的位置就可以被确定 • 找出那些只依赖⽗父View的View(⼀一定存在),先 添加他们的约束 • 根据依赖关系,⼀一级⼀一级的添加约束

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Code

Slide 14

Slide 14 text

Advanced • Content Hugging & Compression Resistance • Intrinsic Content Size • Animation