pqt*_*eru 1 objective-c uitableview ios
这里有tableView数据源和委托实现,我设置的最大选择是5.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
...
if ([multiOptions count] > 5) {
[self tableView:tableView didDeselectRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryNone;
cell.selected = NO;
//show alert
}
...
}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
...
[multiOptions removeObject:selectedOption];
...
}
Run Code Online (Sandbox Code Playgroud)
但是这里有一个问题,如果选项超出限制,第一次点击单元格就可以了.但第二次单击该单元格将调用
didDeselectRowAtIndexPath
Run Code Online (Sandbox Code Playgroud)
再次,那不是我的预期,我试过了
[tableView deselectRowAtIndexPath:indexPath animated:YES];
Run Code Online (Sandbox Code Playgroud)
在didSelectRowAtIndexPath中,它没有用,有人可以给我一个提示,如何纠正它?谢谢.
你必须检查这个 tableView:willSelectRowAtIndexPath:
看一下UITableView类引用, 特别是在最后一句:
返回值一个索引路径对象,用于确认或更改所选行.如果要选择其他单元格,则返回indexPath以外的NSIndexPath对象.如果您不想选择行,则返回nil.
所以像这样的东西可以在tableView:willSelectRowAtIndexPath::
if ([multiOptions count] > 5) return nil;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1590 次 |
| 最近记录: |