如何解决特定的UITableViewCell?

时间:2014-04-03 09:13:40

标签: ios objective-c uitableview

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

谢谢, EM

2 个答案:

答案 0 :(得分:1)

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

  

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

如果您要求在屏幕上看不到的单元格,则可能已从表格视图中清除它。

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

在私人界面中:

@interface MyViewController ()

@property (nonatomic, readonly) MyTableViewCellClass *myStaticCell;

@end

在实施中:

@implementation MyViewController {
    MyTableViewCellClass* _myStaticCell;
}

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

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

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

答案 1 :(得分:0)

这里indexPathSelected是选定的特定单元格

 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {

   UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:indexPathSelected inSection:0]];
 indexPathSelected           = indexPath.row;

}