iOS9在布局方面最大的变化就是引入了UIStackView.那么它是什么呢?简单讲就是一个容器里可以包含多个控件,分为水平和竖直排列.我们只需约束这个容器即可,而不用一个个地去约束容器内的控件.而且这个容器是可以嵌套的.如果你接触过Watch开发,UIStackView有点像其中的Group控件.那就随我去瞅瞅它是什么吧!
首先选中三个UIButton:
然后点一下约束左边的那个有箭头的东西:
Screen Shot 2015-10-27 at 9.17.49 PM.pngok,已经很轻松的完成了一个UIStackView!
Screen Shot 2015-10-27 at 9.18.57 PM.png然后只要约束一下这个UIStackView就可以了.
Screen Shot 2015-10-27 at 9.21.16 PM.png我们可以看到这个UIStackView有几个属性:三个按钮水平并排,可以看到Axis的属性为Horizontal,即轴线属性为水平.Distribution属性为Equal Spacing即相隔相同距离.All Done.很容易就完成了这三个按钮的布局.而如果按照以往,你可能需要做很多约束:(
Screen Shot 2015-10-27 at 9.27.24 PM.png关于Alignment的属性,水平和竖直时有区别:
Screen Shot 2015-10-27 at 9.59.19 PM.png水平时各个属性的效果:
Screen Shot 2015-10-27 at 10.00.56 PM.png Screen Shot 2015-10-27 at 10.01.15 PM.png竖直时各个属性的效果:
Screen Shot 2015-10-27 at 10.01.51 PM.pngAutoLayout还有两个新物件layout anchors和layout guides
- Layout anchors
当我们有两个UILabel,bottomLabel和topLabel,你想把bottomLabel放在topLabel右边间隔8 points的位置,以前你需要添加如下约束:
let constraint = NSLayoutConstraint(
item: topLabel,
attribute: .Bottom,
relatedBy: .Equal,
toItem: bottomLabel,
attribute: .Top,
multiplier: 1,
constant: 8
)
现在可以简化为:
let constraint = topLabel.bottomAnchor.constraintEqualToAnchor(
bottomLabel.topAnchor, constant: 8)
网友评论