我想在UITableview中选择多行,就像Apple在原生闹钟应用中所做的那样(参见图片
我该怎么做?
到目前为止我看到的所有答案都是旧的(并说“不能做”)或参考本机邮件应用程序中的多行选择。那个方法不是我想要的,因为你必须首先进入“编辑”模式。我希望能够立即选择行。
希望有人可以提供帮助。
基督教
答案 0 :(得分:31)
我发现最简单的方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark;
}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryNone;
}
您可以通过调用
来查看选择了哪些单元格NSArray *selectedCells = [self.tableView indexPathsForSelectedRows];
答案 1 :(得分:24)
在
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
做
if([tableView cellForRowAtIndexPath:indexPath].accessoryType == UITableViewCellAccessoryCheckmark){
[tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryNone;
}else{
[tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark;
}
编辑:
您还必须使用映射已检查单元格的数组,并且必须在cellForRowAtIndexPath中验证是否应检查accessoryType。
答案 2 :(得分:12)
答案 3 :(得分:8)
“时钟”应用程序中的“已选定”行是具有UITableViewCellAccessoryCheckmark
附件类型的单元格。
实现这一目标的可能步骤是:
cellForRowAtIndexPath:
属性中的accessoryType
方法UITableViewCellAccessoryCheckmark
cellForRowAtIndexPath:
中未检查的单元格中将单元格的accessoryType
属性设置为UITableViewCellAccessoryNone
答案 4 :(得分:0)
如果您使用的是故事板,只需单击表视图,然后单击右侧面板上的属性检查器,设置"选择"财产到"多重选择"。我已使用Xcode版本8.2.1验证了这一点。