Swift如何正确更新UITableViewCell约束

时间:2016-10-25 01:32:17

标签: ios swift xcode uitableview constraints

我想知道如何正确更新tableviewcell约束?

在我的应用程序中,我正在检查用户是否正在使用iphone 6/7或iphone 6/7 Plus并依赖于我必须更改一些约束。

我已经创建了UITableViewCell的子类:

class MyTableViewCell: UITableViewCell {

}

我应该更改prepareForReuse()或其他方法中的约束吗?

override func prepareForReuse() {
        super.prepareForReuse()
        myConstraint.constant = someNewVal
    }

1 个答案:

答案 0 :(得分:2)

来自re.sub()的文档:

  

如果UITableViewCell对象是可重用的 - 也就是说,它具有重用标识符 - 在从UITableView方法dequeueReusableCellWithIdentifier:返回对象之前调用此方法:出于性能原因,您应该仅重置与内容无关的单元格属性,例如,alpha,编辑和选择状态。 tableView:cellForRowAtIndexPath:中的表视图委托应始终在重用单元格时重置所有内容。如果单元对象没有关联的重用标识符,则不会调用此方法。如果重写此方法,则必须确保调用超类实现。

因此,您可以使用prepareForReuse,但由于性能原因,最好使用prepareForReuse

如果我理解文档,tableView:cellForRowAtIndexPath: 应该尽可能快,prepareForReuse也会很快。因此,最好在另一种方法(dequeueReusableCellWithIdentifier:

中更改约束