iphone - 是否 dequeueReusableCellWithIdentifier : call an initializer in my UITableViewCell subclass?

标签 iphone objective-c uitableview

我有一个 UITableViewController 子类,它的原型(prototype)单元在 Storyboard中模拟。

cellForRowAtIndexPath 委托(delegate)方法中有大量代码用于设置单元格。问题是,如果单元刚从重用池中出队,我不需要其中的大部分,因为当单元第一次出队时已经完成了。我不能在 Storyboard 中这样做,因为有些属性我只能通过编程方式访问。

当 UITableViewController 从 Storyboard 中获取原型(prototype)单元格时,它是否会调用我的 UITableViewCell 子类中的初始化程序?我尝试了 (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 但这似乎不是流程的一部分。

最佳答案

当 UITableView 实例调用 dequeueReusableTileWithIdentifier: 时,单元不会重新初始化。相反,在该调用中,出队的 UITableViewCell 将调用 -(void)prepareForReuse。这是因为重新初始化单元的成本很高,如果我们可以提供一种更简单的方法来准备它的重用(嗯,嗯,明白了吗?)它可以节省大量的 CPU 工作。

因此,如果您使用的是自定义单元格,请覆盖 UITableViewCell prepareForReuse

关于iphone - 是否 dequeueReusableCellWithIdentifier : call an initializer in my UITableViewCell subclass?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11056420/

相关文章:

ios - 在 swift 3 中单击另一个 TableView 单元格的 Collection View 数据后,如何重新加载 TableView 单元格中的 Collection View 数据?

iphone - 应用程序崩溃 - Webcore - iOS 5.1.1

iphone - 如何在 iPhonesdk 中创建 NSTimer

iphone - 如何使用 WkWebView 内联播放视频

objective-c - 与 AVPlayer 的帧同步

ios - UITableView 中单元格顶部的 UIView

iphone - ULabel 的 center 属性的值根据它绑定(bind)到的边而变化

Objective-C 有人可以解释一下如何以编程方式显示 View 吗

objective-c - 如何在页面中添加评论框?

ios - 自定义 UITableViewCell 异常