【发布时间】:2011-12-01 03:54:15
【问题描述】:
我有一个自定义 UITableViewCell,它显示了 Person 对象的各种属性(由 Core Data 支持)......一些标签、图像等。我目前强制整个 tableview 在任何属性更改时重新加载,这显然效率不高.我知道使用 KVO,我应该能够向单元格中的标签添加一个侦听器,该标签可以侦听 Person 属性的更改。但我不确定如何实现它,也找不到任何示例。
这是我通常在 UITableView 的 cellForRowAtIndexPath 中执行的操作:
- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath
{
static NSString *simple = @"CustomCellId";
CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:simple];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
for (id findCell in nib )
{
if ( [findCell isKindOfClass: [CustomCell class]])
{
cell = findCell;
}
}
}
Person *managedObject = [self.someArray objectAtIndex: indexPath.row];
cell.namelabel.text = managedObject.displayName;
return cell;
}
单元已连接到 IB。我想检测 displayName 何时更改,并仅更新名称标签。 谢谢
【问题讨论】:
标签: objective-c core-data uitableview key-value-observing