我在附件视图中有一个带有UISwitch的TableViewCell。如果有人选择它,我不想要蓝色背景。因此,我使用了
cell.userInteractionEnabled = NO;
然后整个单元格无法访问,所以我尝试了
cell.userInteractionEnabled = NO;
cell.accessoryView.userInteractionEnabled = YES;
我认为这不会起作用,因为cell是accessoryView的父级。但我该如何处理这个问题呢?正确方向的提示会很棒。
西蒙
这是完整的cellForRowAtIndexPath方法:
cell.textLabel.text = @"dasda";
cell.userInteractionEnabled = NO;
cell.accessoryType = UITableViewCellAccessoryNone;
UISwitch *mySwitch = [[[UISwitch alloc] initWithFrame:CGRectZero] autorelease];
mySwitch.tag = row;
[cell addSubview:mySwitch];
cell.accessoryView = mySwitch;
cell.accessoryView.userInteractionEnabled = YES;
[(UISwitch *)cell.accessoryView setOn: YES];
[(UISwitch *)cell.accessoryView addTarget:self action:@selector(someAction:) forControlEvents:UIControlEventValueChanged];
return cell;
答案 0 :(得分:4)
在你的cellForRowAtIndexPath方法中试试这个:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
您还可以选择在didSelectRowAtIndexPath方法中使用它:
[table deselectRowAtIndexPath:indexPath animated:NO];