我在UITableView中使用静态单元格布局。在工作流程中,我需要解决特定单元格的属性。所有单元格都有一个标识符,但我没有找到使用标识符实际寻址单元格的方法。
谢谢, EM
答案 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;
}