autoLayout是苹果极力推荐的一种布局方式,因为其可视化的操作和极佳的开发效率而备受推崇。autolayout的功能非常强大,下面就简单说几点
到现在为止,所有的约束都可以用autolayout完成
1.控件等距离均匀分布布局
- (void)updateViewConstraints
{
[self autoArrangeBoxWithConstraints:@[self.button1X,
self.button2X,
self.button3X,
self.button4X]
width:self.buttonWidth.constant];
[super updateViewConstraints];
}
- (void)autoArrangeBoxWithConstraints:(NSArray *)constraintArray width:(CGFloat)width
{
CGFloat step = (self.view.frame.size.width - (width * constraintArray.count)) / (constraintArray.count + 1);
for (int i = 0; i < constraintArray.count; i++) {
NSLayoutConstraint *constraint = constraintArray[i];
constraint.constant = step * (i + 1) + width * i;
}
}
2.自动布局基本功能介绍:
对齐设置:
阅读起始对齐,结尾对齐,控件相对中心对齐,相对父视图中心对齐
边距位置设置,长度,宽度设置
控件之间等宽,等高设置
更新frame 和更新constraint ,上端选择项是针对选中控件,下端选择项是针对所有控件
3. 快捷小技巧
按住ctrl键拖到另外一个控件上可以建立constraint,
按住alt键显示边距和宽高
加辅助线 editor ->add horizental guide 拖到外面会删除
效果预览
点击方格,最下端有个preview选项,打开各种尺寸
4.- (CGSize)intrinsicContentSize 此方法会根据内容的尺寸自动调节视图比例 ,自动执行,无需介入
5. 小原则:
设置constraint与尽量少的控件建立联系,方便调节