【问题标题】:Can I safely use dequed tableView cell as prototype我可以安全地使用 dequed tableView 单元格作为原型吗
【发布时间】:2014-04-09 08:18:46
【问题描述】:

我正在使用原型单元来计算实际单元高度。由于我使用的是故事板,因此我选择通过对它进行出队来创建原型单元。示例代码:

- (MyCell *)prototypePriceOptionCell
{
    if (_prototypeCell == nil) {
        _prototypeCell = (MyCell *)[self.tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    }
    return _prototypePriceOptionCell;
}

这个原型永远不会在cellForRowAtIndexPath 方法中返回给tableView

它会被table view dequed以重用并在table view中显示吗?

【问题讨论】:

    标签: ios objective-c uitableview cocoa-touch uikit


    【解决方案1】:

    从技术上讲,您可以通过docs

    如果您为指定的标识符和新单元格注册了一个类 必须创建,此方法通过调用其初始化单元格 initWithStyle:reuseIdentifier: 方法。对于基于笔尖的单元格,这 方法从提供的 nib 文件加载单元对象。如果 现有单元格可供重用,此方法调用单元格的 prepareForReuse 方法。

    但它也声明在某些情况下它可以返回 nil。 但是,我不会使用您的方法,不是因为它不起作用,而是因为它不应该那样使用。这意味着您的代码很弱,依赖于不应该这样使用的功能。

    我的建议是,手动调用适当的方法来实例化您的单元格。此外,我喜欢将单元格放在单独的 xib 上,远离故事板。

    编辑: 最后回答您的问题,是的,如果您在 cellForRowAtIndexPath 中调用 dequeue,则单元格可以并且将会被表格视图出列。

    【讨论】:

      猜你喜欢
      • 2012-10-11
      • 2014-12-06
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多