我正在更新CellForRow方法中的约束。更新约束后我应该调用哪个方法,setUpdateConsraint()或layoutIfNeeded()?或者只是返回细胞。无需调用任何方法?
答案 0 :(得分:0)
调用layoutIfNeeded()
并实施方法prepareForReuse
方法,您需要重置约束。
例如:
override func prepareForReuse() {
super.prepareForReuse()
yourConstraint.constant = defaultConstraint
}
为什么需要这样做:它会在您滚动后随机使用约束,因为重复使用了单元格。
答案 1 :(得分:0)
cellForRowAt
是一个完全可以接受的更新约束的地方,然后只返回单元格。你不需要再打电话了:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "SCellA", for: indexPath) as! SCellA
// Configure the cell...
cell.theLabel.text = "\(indexPath)"
cell.theHeightConstraint.constant = indexPath.row % 2 == 0 ? 40 : 100
return cell
}
答案 2 :(得分:0)
func tableView(_ tableView:UITableView,willDisplay单元格:UITableViewCell,forRowAt indexPath:IndexPath)
是用于更新约束的Right方法。 在此方法中添加代码以更新约束。