我希望在增加字体大小时更改单元格中的标签顶部和底部约束:
@IBAction func changeFontSize(_ sender: UIBarButtonItem) {
fontSize += 2
self.tableView.reloadData()
self.tableView.reloadInputViews()
self.tableView.setNeedsUpdateConstraints()
}
在细胞中:
cellLabel.numberOfLines = 0
cellLabel.sizeToFit()
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! TableCells
let cellTitle = dataArray.object(at: indexPath.row) as! NSString
cell.cellLabel.attributedText = self.convertStringToAttributeText(text: cellTitle)
let paragraphSpace = fontSize / 3
cell.cellLabel.translatesAutoresizingMaskIntoConstraints = false
let hConstraints = NSLayoutConstraint.constraints(withVisualFormat: "H:|-20-[label]-20-|", options: .init(rawValue: 0), metrics: nil, views: ["label": cell.cellLabel])
cell.contentView.addConstraints(hConstraints)
let vConstraints = NSLayoutConstraint.constraints(withVisualFormat: "V:|-\(paragraphSpace)-[label]-\(paragraphSpace)-|", options: .init(rawValue: 0), metrics: nil, views: ["label": cell.cellLabel])
cell.contentView.addConstraints(vConstraints)
return cell
}
自动细胞高度正常,但CONSTRAINTS不会改变!
答案 0 :(得分:0)
在为iOS 8.0或更高版本开发时,请使用NSLayoutConstraint类的activate( :)方法,而不是直接调用addConstraints( :)方法。 activate(_ :)方法会自动将约束添加到正确的视图中。
另外,我建议覆盖单元格子类中的updateConstraints()
,而不是每次使用单元格时删除并重新创建约束。