参考链接stack overflow.中的答案 链接
通过下面的方法动态的去设定约束就ok了
// Removing the view both horizontally and vertically
func removeView(view: UIView) {
let constraintH = NSLayoutConstraint(item: view as UIView,
attribute: NSLayoutAttribute.Height,
relatedBy: .Equal,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 0,
constant: 0)
let constraintW = NSLayoutConstraint(item: view as UIView,
attribute: NSLayoutAttribute.Width,
relatedBy: .Equal,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 0,
constant: 0)
view.addConstraint(constraintH)
view.addConstraint(constraintW)
}
那如果在tableview或者collectionview 的cell中,有的要gone有的要visible怎么办呢
定义一个约束,通过
第一步:定义约束 var constraintW:NSLayoutConstraint!
第二步:初始化约束
constraintW = NSLayoutConstraint(item:icon as UIView,
attribute: NSLayoutAttribute.Width,
relatedBy: .Equal,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 0,
constant: 0)
icon.addConstraint(constraintW)添加(gone)
icon.removeConstraint(constraintW)删除(visible)
这个约束来搞定