以编程方式设置collectionview单元格中标签约束的高度

时间:2016-12-21 00:55:47

标签: ios swift uicollectionviewcell

我正在尝试为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声明是否适用于此。

2 个答案:

答案 0 :(得分:2)

有一种方便的方法可以使用约束并在代码中更改它。

首先,声明约束属性:

@IBOutlet weak var labelHeight: NSLayoutConstraint!

其次,在XIB或Stroyboard中绑定它: enter image description here

最后,您可以通过编程方式更改它:

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))

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html

  

(...)您必须为每个参数指定一个值,即使它不影响布局。最终结果是大量的样板代码,通常难以阅读。 (...)