从Storyboard加载自定义的UITableViewCell

目前我正在使用故事板的自动布局来dynamic调整自定义UITableViewCell的大小。 除了滚动时存在内存泄漏之外,一切正常,因为它应该如此。

我知道问题来自于呼叫

 [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

从内部

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

我的问题是,创build参考单元的最佳方法是什么? 如何从故事板加载一个没有dequeueReusableCellWithIdentifier的单元格?

可以从viewDidLoad调用dequeueReusableCellWithIdentifier并创build一个引用单元格作为属性?

我需要参考单元的尺寸目的。

谢谢你的帮助。

关于如何创build引用单元格(请参阅原始问题),我可以看到有几个选项:

  1. 用XIB创build一个自定义单元格,这里有很棒的文章 – > 一个链接 !

    • 这是@smileyborg指出的,谢谢!
  2. 在代码中创build自定义单元格以及约束。

  3. 在故事板中创build自定义单元格作为原型单元格

    • 之后有2个选项:
      • 将表格视图中的自定义单元格拖放到故事板场景中,作为顶层笔尖对象(不是视图层次结构的一部分),然后简单地为其创build出口。
      • 复制自定义单元格并将其粘贴到故事板场景。 当以这种方式使用它时,不需要将原始单元格与login表一起注册。
      • 这两种方法的小问题是,一旦将自定义单元格拖放到故事板场景中,将无法以可视方式查看并排列UI。
    • 这里伟大的文章 – > 一个链接 !

谢谢大家的帮助!

可以从viewDidLoad中调用dequeueReusableCellWithIdentifier并创build一个引用单元格作为属性?

是的,你可以做到这一点。 或者懒惰的初始化属性:

 - (UITableViewCell *)referenceCell { if (!_referenceCell) { _referenceCell = [self.tableView dequeueReusableCellWithIdentifier:@"Cell"]; } return _referenceCell; } 

您可以将这个单元出队一次并存储高度:

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { static NSNumber *height; if (!height) { UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"YourCustomCell"]; height = @(cell.bounds.size.height); } return [height floatValue]; }