我想知道如何正确更新tableviewcell约束?
在我的应用程序中,我正在检查用户是否正在使用iphone 6/7或iphone 6/7 Plus并依赖于我必须更改一些约束。
我已经创建了UITableViewCell的子类:
class MyTableViewCell: UITableViewCell {
}
我应该更改prepareForReuse()
或其他方法中的约束吗?
override func prepareForReuse() {
super.prepareForReuse()
myConstraint.constant = someNewVal
}
答案 0 :(得分:2)
来自re.sub()
的文档:
如果UITableViewCell对象是可重用的 - 也就是说,它具有重用标识符 - 在从UITableView方法dequeueReusableCellWithIdentifier:返回对象之前调用此方法:出于性能原因,您应该仅重置与内容无关的单元格属性,例如,alpha,编辑和选择状态。 tableView:cellForRowAtIndexPath:中的表视图委托应始终在重用单元格时重置所有内容。如果单元对象没有关联的重用标识符,则不会调用此方法。如果重写此方法,则必须确保调用超类实现。
因此,您可以使用prepareForReuse
,但由于性能原因,最好使用prepareForReuse
。
如果我理解文档,tableView:cellForRowAtIndexPath:
应该尽可能快,prepareForReuse
也会很快。因此,最好在另一种方法(dequeueReusableCellWithIdentifier:
)