在我的应用程序中,我有UITableView
. 我用复选标记标记选定的单元格,如果它再次被选中,则删除复选标记。我有一个 UIBarButtonItem,它是一个“下一步”按钮,默认情况下它是禁用的。
我的问题是,如果至少有一个UITableViewCell
有复选标记,则必须启用下一个按钮。如何控制所有单元格,无论其中至少一个是否有复选标记。
在我的应用程序中,我有UITableView
. 我用复选标记标记选定的单元格,如果它再次被选中,则删除复选标记。我有一个 UIBarButtonItem,它是一个“下一步”按钮,默认情况下它是禁用的。
我的问题是,如果至少有一个UITableViewCell
有复选标记,则必须启用下一个按钮。如何控制所有单元格,无论其中至少一个是否有复选标记。
你不能“只是”使用一个布尔变量,当单元格被选中时它被设置为true,而不是被选中时设置为false?然后每次重新加载 tableview 并相应地禁用/启用下一个按钮时检查一下?
在 didSelectRowAtindexPath 中只检查是否选中了 chemark,如果是则取消选中它,如果未选中则选中它。
伪代码,不是实际代码
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:
(NSIndexPath *)indexPath
{
if(checkmark checked )
{
un checked it
nextButton.enabled=false;
}
else
{
checked it;
nextButton.enabled=false;
}
}
通常,我认为最好的方法是为每个对象设置一个布尔值。
我希望您有一个传递给表格视图的对象数组。
因此,在 didSelect 方法中,如果设置了数组中的至少 1 个对象,则可以检查 FOR 循环。
在 tableView 中启用 multipleSelection。在 viewDidLoad
tableView.allowsMultipleSelection = YES;
每次选择或取消选择一行时,检查[tableView indexPathsForSelectedRows]
数组的计数。如果计数大于 0,请启用您的按钮。否则禁用它。
[tableView indexPathsForSelectedRows] 返回一个 NSArray。
不需要额外的参数。