我有一个非常简单的问题,我不能(对于我的生活)弄清楚。我知道当我听到答案时,我会打发自己。
我有一个UITableView
,其上有UITableViewCell
个子类。每个单元格都有一个UIButton子视图。
如果布尔值为false,我需要禁用每个单元格上的按钮;如果/当布尔值更改为true时,应启用该按钮。我会观察KVC。我应该在哪里有这个处理程序?在UIViewController
?如果是这样,告诉单元格他们需要禁用/启用按钮的最佳方法是什么?
答案 0 :(得分:4)
我会在cellForRowAtIndexPath
中实现show / hide功能,并在更改布尔值时调用[tableView reloadData]
(或更具体的重新加载/刷新调用)。
答案 1 :(得分:0)
我看到两种方法。
1)reloadData(如前所述)
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"data.boolean"]) {
[self.tableView reloadData];
}
}
2)第二个是迭代可见细胞。
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"data.boolean"]) {
for (MyTableViewCell *cell in [self.tableView visibleCells]) {
cell.button.hidden = !self.data.boolean;
}
}
}