用代码给view添加约束,跟在xib添加约束一样,只不过约束需要通过代码创建而已,需要注意约束是添加到哪个视图上,填加错了程序就会崩溃。
1.视图的translatesAutoresizingMaskIntoConstraints属性要关闭
2.autoresizingMask设置可拉伸的属性
3.添加约束
NSLayoutConstraint.init(item: subView, attribute: .width, relatedBy: .equal, toItem: superView, attribute: .width, multiplier: 1.0, constant: 0)
翻译: 子视图 的 宽度 = 父视图 的 宽度 * 1.0 + 0
记住这个翻译就知道参数怎么填了
func addViewContraint(subView: UIView, superView: UIView) {
subView.translatesAutoresizingMaskIntoConstraints = false
subView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
let widthConstraint = NSLayoutConstraint.init(item: subView, attribute: .width, relatedBy: .equal, toItem: superView, attribute: .width, multiplier: 1, constant: 0)
let heightConstraint = NSLayoutConstraint.init(item: subView, attribute: .height, relatedBy: .equal, toItem: superView, attribute: .height, multiplier: 1, constant: 0)
let xConstraint = NSLayoutConstraint.init(item: subView, attribute: .top, relatedBy: .equal, toItem: superView, attribute: .top, multiplier: 1, constant: 0)
let yConstraint = NSLayoutConstraint.init(item: subView, attribute: .left, relatedBy: .equal, toItem: superView, attribute: .left, multiplier: 1, constant: 0)
superView.addConstraint(widthConstraint)
superView.addConstraint(heightConstraint)
superView.addConstraint(xConstraint)
superView.addConstraint(yConstraint)
}