搜索
您的当前位置:首页正文

Swift 代码添加约束

来源:知库网

注意:view添加或更改约束之前需要将该view的属性translatesAutoresizingMaskIntoConstraints 设置为false。该属性默认为true,标志使用autolayout

    *创建约束 NSLayoutConstraint  参数 说明:
    * item 自己
    * attribute 需要约束的属性
    * relatedBy 大于等于 小于等于 等于
    * toItem 参照view
    * attribute 参照view的参照属性
    * multiplier 比例
    * constant : 距离(正负数)

宽度和高度是添加到自己身上的,而上下左右四个方向的约束添加到superView上面的。而且只有是宽度和高度约束时,multiplier可以设置为0.0
设置宽度约束等于64,并没有参照view,而且参照属性值为.notAnAttribute

let widthContraint = NSLayoutConstraint.init(item: self.iconImageView,
                                                 attribute: .width,
                                                 relatedBy: .equal,
                                                 toItem: nil,
                                                 attribute: .notAnAttribute,
                                                 multiplier: 0.0,
                                                 constant: 64)
self.iconImageView.addConstraint(widthContraint)

设置左边与superView的距离等于15

let leftConstraint = NSLayoutConstraint.init(item: self.iconImageView,
                                                 attribute: .left,
                                                 relatedBy: .equal,
                                                 toItem: self,
                                                 attribute: .left,
                                                 multiplier: 1.0,
                                                 constant: 15)
self.iconImageView.superview?.addConstraint(leftConstraint)

对于同一层级的view直接的约束,也是添加到superView上面。例如:设置titleLabel与iconImageView左边距为10

let leftConstraint = NSLayoutConstraint.init(item: self.titleLabel,
                                                 attribute: .left,
                                                 relatedBy: .equal,
                                                 toItem: self.iconImageView,,
                                                 attribute: .left,
                                                 multiplier: 1.0,
                                                 constant: 10)
self.iconImageView.superview?.addConstraint(leftConstraint)
Top