【发布时间】:2016-09-28 22:45:46
【问题描述】:
我刚刚看到一篇关于选择多个 UITableView 行的帖子,并根据选择的行/行,当您按下链接到 IBAction 的按钮时会发生一些事情。
这是一个有趣的问题,我已经玩过了,但现在我有点卡住了。
如您所见,我有一个名为 selectedIndexes 的 NSMutableArray,所选行/行使用 NSLog 显示在控制台中。这工作正常:
- (IBAction)doSomethingWithSelectedRows:(id)sender {
for (NSNumber *data in self.selectedIndexes) {
NSLog(@"Row %ld is selected.", (long)[data integerValue] +1);
}
if (WHAT SHOULD BE PUT HERE?) {
}
//Do whatever you want here.
}
问题是,如果您希望发生这种情况,应该在上面的 if 语句中添加什么:
if (row 2 and row 1 are selected {
//Run this code.
}
更新:
这里有更多代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
if ([selectedCell accessoryType] == UITableViewCellAccessoryNone) {
[selectedCell setAccessoryType:UITableViewCellAccessoryCheckmark];
[_selectedIndexes addObject:[NSNumber numberWithInteger:indexPath.row]];
} else {
[selectedCell setAccessoryType:UITableViewCellAccessoryNone];
[_selectedIndexes removeObject:[NSNumber numberWithInteger:indexPath.row]];
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
- (IBAction)doSomethingWithRowsSelected:(id)sender {
for (NSNumber *data in self.selectedIndexes) {
NSLog(@"Row %ld is selected.", (long)[data integerValue] +1);
}
}
【问题讨论】:
-
建议您使用
NSMutableIndexSet,而不是将选择存储在数组中,然后检查您感兴趣的两个索引是否被选中 -
我有什么办法吗?
-
@Paulw11 添加了更多代码!
标签: ios objective-c uitableview