目前,我正在使用故事板的自动布局来动态调整自定义UITableViewCell
的大小。除了滚动时存在内存泄漏外,一切都正常。
我知道问题来自于调用
[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
来自内部
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
我的问题是,创建参考单元的最佳方法是什么?如何在没有dequeueReusableCellWithIdentifier
的情况下从故事板加载单元格?
可以从dequeueReusableCellWithIdentifier
拨打viewDidLoad
并创建参考单元作为属性吗?
我需要参考单元用于调整大小。
感谢您的帮助。
答案 0 :(得分:10)
关于如何创建参考单元格(参见原始问题),我可以看到几个选项:
使用XIB创建自定义单元格,这里有一篇很棒的文章 - > a link!
在代码中创建自定义单元格以及约束。
在storyboard中创建自定义单元格作为原型单元格
谢谢大家的帮助!
答案 1 :(得分:1)
可以从viewDidLoad调用dequeueReusableCellWithIdentifier并创建一个引用单元作为属性吗?
是的,你可以这样做。或懒惰初始化属性:
- (UITableViewCell *)referenceCell
{
if (!_referenceCell) {
_referenceCell = [self.tableView dequeueReusableCellWithIdentifier:@"Cell"];
}
return _referenceCell;
}
答案 2 :(得分:0)
您可以将单元格出列一次并存储高度:
- (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];
}