在我的tableview中,我使用了包含复选框的自定义单元格。在自定义单元格类中添加复选框的代码是:
checkbox = [[SSCheckBoxView alloc] initWithFrame:CGRectMake(0, 20, 20, 20)
style:kSSCheckBoxViewStyleGlossy
checked:NO];
[self addSubview:checkbox];
我的问题是每当我点击复选框时它都会调用didSelectRowAtIndexPath
。如何阻止这个?
答案 0 :(得分:4)
您必须添加UIButton
或将复选框设为按钮,然后在addsubview
中UITabelViewCell
。这将覆盖didSelectRowAtIndexPath
方法本身,按钮单击将使您的操作成为可能。同时使按钮的尺寸更大一些,以便可点击区域合理。希望这会有所帮助。
编辑:
所以,如果你想这样做,我有办法在复选框方法中添加一个bool值IsChecked = YES
。然后,当调用didSelectRowAtIndexPath
方法时,在其中添加
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(IsChecked == NO)
{
Ischecked = NO;
// Add your methods
}
}
希望你得到它......
答案 1 :(得分:3)
您可以通过为索引路径返回nil来停止选择。使用以下代码。
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{
return nil;
}