我正在尝试为collectionview cell
class CollectionViewCell: UICollectionViewCell {
@IBOutlet weak var label: UILabel!
override func layoutSubviews() {
super.layoutSubviews()
constraint()
}
func constraint() {
label.addConstraint(NSLayoutConstraint(item:label, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 25))
}
}
我做了以上操作并且无法正常工作。 layoutSubviews
声明是否适用于此。
答案 0 :(得分:2)
有一种方便的方法可以使用约束并在代码中更改它。
首先,声明约束属性:
@IBOutlet weak var labelHeight: NSLayoutConstraint!
最后,您可以通过编程方式更改它:
self.labelHeight.constant = 130
答案 1 :(得分:0)
NSLayoutConstraint(item: label, attribute: .Height, relatedBy: .Equal, toItem: label, attribute:.Height, multiplier: 1.0, constant:25.0)
或
NSLayoutConstraint.constraintsWithVisualFormat(@"V:[label(==24)]", options: nil , metrics: nil, views: NSDictionaryOfVariableBindings(label))
(...)您必须为每个参数指定一个值,即使它不影响布局。最终结果是大量的样板代码,通常难以阅读。 (...)