IOS开发指南读书笔记8(AutoLayout)
其原理类似Android的RelativeLayout,适用于IOS6以上。如果不同约束有冲突,回遵循优先级的高的约束。
一、可以设定的约束有
1、高度、宽度
至少,等于,至多一个数值
至少,等于,至多为其他控件的宽度,高度
2、对齐方式
与父控件 头部(左边Leading)对齐,尾部(右边Trailing)对齐,顶部对齐,底部对齐,水平中心对齐,垂直中心对齐,头部边缘对齐,尾部边缘 对齐 ,顶部边缘 对齐 ,底部边缘 对齐
一、可以设定的约束有
1、高度、宽度
至少,等于,至多一个数值
至少,等于,至多为其他控件的宽度,高度
2、对齐方式
与父控件 头部(左边Leading)对齐,尾部(右边Trailing)对齐,顶部对齐,底部对齐,水平中心对齐,垂直中心对齐,头部边缘对齐,尾部边缘 对齐 ,顶部边缘 对齐 ,底部边缘 对齐
与其他控件头部(左边Leading)对齐,尾部(右边Trailing)对齐,顶部对齐,底部对齐,水平中心对齐,垂直中心对齐
,头部边缘对齐,尾部边缘
对齐
,顶部边缘
对齐
,底部边缘
对齐
,文本标线对齐
3、距离
距离父控件的顶部,底部,头部,尾部 至少,等于,至多于一个数值
距离其他控件的 顶部,底部,头部,尾部 至少,等于,至多于一个数值
二、Xib实现,略(自己尝试)
三、代码实现
默认规则
1、 | 表示父视图
2、 -表示距离
3、 V 表示 垂直
距离父控件的顶部,底部,头部,尾部 至少,等于,至多于一个数值
距离其他控件的 顶部,底部,头部,尾部 至少,等于,至多于一个数值
二、Xib实现,略(自己尝试)
三、代码实现
默认规则
1、 | 表示父视图
2、 -表示距离
3、 V 表示 垂直
4、 H
表示
水平(不写表示水平)
5、>=
表示
至少
6、 ==
表示
等于 (不写表示等于)
7、 <=
表示
至多
8、 @ 表示优先级 1000以内
8、 @ 表示优先级 1000以内
实际运用
1、宽度,高度设定
(1) [view(==200.0)] [view(>=200.0)] [view(<=200.0)]
宽度 等于 至少 至多 为200
(2)V:[view(==50.0)] V:[view(>=50.0)] V:[view(<=50.0)]
高度 等于 至少 至多 为200
(3) [view(==view1)] [view(>=view1)] [view(<=view1)]
宽度 等于 至少 至多 为View1的宽度
(4) V:[view(== view2 )] V:[view(== view2 )] V:[view(== view2 )]
高度 等于 至少 至多 为View1的高度度
2 、对齐设定
(1) |[view] [view]| V:|[view] V:[view]|
对齐父控件头部 尾部 顶部 底部
(2) |-[view] [view]-| V:|-[view] V:[view]-|
对齐父控件头部 尾部 顶部 底部边缘
(3)参数
NSLayoutAttributeCenterX, NSLayoutAttributeCenterY,
NSLayoutAttributeLeft , NSLayoutAttributeRight
NSLayoutAttributeTop, NSLayoutAttributeBottom
NSLayoutAttributeLeading, NSLayoutAttributeTrailing
NSLayoutAttributeBaseline
3、距离
(1)在父视图中间
|-[View]-|
(2)距离父视图左右30
|-30-[View ] -30- |
(3) 距离父视图上下30
V: |-30-[View ] -30- |
4、其他
(1)|-[view]->=30-[view1]-|
水平排布,两个View在父视图内,中间间隔至少30