3

我有一个非常简单的问题,我(对于我的一生)无法弄清楚。我知道当我听到答案时我会打自己。

我有一个UITableView, 和它的UITableViewCell子类。每个单元格都有一个 UIButton 子视图。

如果布尔值为 false,我需要禁用每个单元格上的按钮;如果/当布尔值更改为 true,则应启用该按钮。我会观察KVC。我应该在哪里有这个处理程序?在UIViewController? 如果是这样,告诉单元格他们需要禁用/启用按钮的最佳方法是什么?

4

2 回答 2

4

我将在 中实现显示/隐藏功能cellForRowAtIndexPath,并[tableView reloadData]在对布尔值进行更改时调用(或更具体的重新加载/刷新调用)。

于 2013-05-12T21:36:28.610 回答
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;
        }
    }
}
于 2013-05-12T21:44:58.227 回答