我在UITableView中使用静态单元格布局。在工作流程中,我需要解决特定单元格的属性。所有单元都有一个标识符,但是我没有找到使用该标识符实际寻址该单元的方法。

谢谢,
EM

最佳答案

cellForRowAtIndexPath:不可靠的原因可能是这样的(来自文档):


  表示表单元格的对象;如果该单元格不可见或indexPath超出范围,则为nil。


如果您请求在屏幕上不可见的单元格,则可能已从表格视图中清除了该单元格。

由于您提到在表视图中使用静态单元格布局(我假设您不依赖单元格重用),因此可以考虑将单元格保留为私有属性:

在专用界面中:

@interface MyViewController ()

@property (nonatomic, readonly) MyTableViewCellClass *myStaticCell;

@end


在执行中:

@implementation MyViewController {
    MyTableViewCellClass* _myStaticCell;
}

- (MyTableViewCellClass*) myStaticCell {
    if (!_myStaticCell) {
        // Initialize _myStaticCell
    }
    return _myStaticCell
}


然后,当调用tableView:cellForItemAtIndexPath:以及需要修改它时,可以调用此延迟加载的属性。

请注意,仅当您的表格视图具有静态内容并且不依赖单元格重用时,才建议使用此方法。

07-28 07:41