在单元格中处理UIImageView上的触摸时出错?

时间:2012-01-07 14:41:51

标签: iphone uitableview touch uitapgesturerecognizer

我不知道为什么会这样,但我收到了这个错误:

  

- [__ NSArrayM部分]:无法识别的选择器发送到实例0x7e53b70 2012-01-07 15:35:44.108 Timely1 [51661:15203] * 终止   应用程序由于未捕获的异常'NSInvalidArgumentException',原因:   ' - [__ NSArrayM section]:发送到实例的无法识别的选择器   0x7e53b70'

激活handleTouch时。这是我添加图片和点按手势的代码。

[cell.imageView setUserInteractionEnabled:YES];
[cell.imageView setImage:[UIImage imageNamed:@"checkbox.PNG"]];

UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTouch:)];
tapped.numberOfTapsRequired = 1;
[cell.imageView addGestureRecognizer:tapped];   
[tapped release];

然后我处理触摸的代码:

-(void)handleTouch:(UITapGestureRecognizer *)gesture
{
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[array count] inSection:1];
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

    [cell.imageView setImage:[UIImage imageNamed:@"checkbox_checked.PNG"]];
    [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:array] withRowAnimation:UITableViewRowAnimationFade];
}

更新:如果我想取消选中它(比如切换它),有人知道怎么做吗?

2 个答案:

答案 0 :(得分:2)

在你的handleTouch方法中,我认为你可以使用:

UIImageView *cellImageView=(UIImageView *)gesture.view;

答案 1 :(得分:0)

我决定使用UIButton作为我的复选框并继承我的UITableViewCell,这似乎更容易,也更合乎逻辑,尤其是切换位。