UITableViewCell没有userInteraction,但在cell.accessoryView上

时间:2010-05-14 00:17:44

标签: iphone objective-c uitableview

我在附件视图中有一个带有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;

1 个答案:

答案 0 :(得分:4)

在你的cellForRowAtIndexPath方法中试试这个:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

您还可以选择在didSelectRowAtIndexPath方法中使用它:

[table deselectRowAtIndexPath:indexPath animated:NO];