1

在我的应用程序中,我有UITableView. 我用复选标记标记选定的单元格,如果它再次被选中,则删除复选标记。我有一个 UIBarButtonItem,它是一个“下一步”按钮,默认情况下它是禁用的。

我的问题是,如果至少有一个UITableViewCell有复选标记,则必须启用下一个按钮。如何控制所有单元格,无论其中至少一个是否有复选标记。

4

4 回答 4

3

你不能“只是”使用一个布尔变量,当单元格被选中时它被设置为true,而不是被选中时设置为false?然后每次重新加载 tableview 并相应地禁用/启用下一个按钮时检查一下?

于 2013-02-11T10:45:42.023 回答
0

在 didSelectRowAtindexPath 中只检查是否选中了 chemark,如果是则取消选中它,如果未选中则选中它。

伪代码,不是实际代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:
(NSIndexPath *)indexPath
{
    if(checkmark checked )
    {
    un checked it
    nextButton.enabled=false;
    }
    else
    {
    checked it;
    nextButton.enabled=false;
    }

}
于 2013-02-11T10:53:03.013 回答
0

通常,我认为最好的方法是为每个对象设置一个布尔值。

我希望您有一个传递给表格视图的对象数组。

因此,在 didSelect 方法中,如果设置了数组中的至少 1 个对象,则可以检查 FOR 循环。

于 2013-02-11T10:56:47.277 回答
0

在 tableView 中启用 multipleSelection。在 viewDidLoad

tableView.allowsMultipleSelection = YES;

每次选择或取消选择一行时,检查[tableView indexPathsForSelectedRows]数组的计数。如果计数大于 0,请启用您的按钮。否则禁用它。

[tableView indexPathsForSelectedRows] 返回一个 NSArray。

不需要额外的参数。

于 2013-02-11T11:21:29.587 回答