当触摸内容视图中的图像时,防止UITableViewCell突出显示

时间:2013-05-31 21:11:21

标签: iphone ios uitableview

我在UIImageView的内容视图的右侧添加了UITableViewCell

我正在尝试阻止在用户触摸UIImageView时突出显示单元格(因为附加的手势识别器会执行其他功能)。

我考虑过实施tableView:shouldHighlightRowAtIndexPath:并返回NO,但我不确定如何在调用此方法时轻松确定是否正在触摸图像。有一个简单的方法吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ...

    // Add tap gesture recogniser to cell's image view
    UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped)];
    tap.cancelsTouchesInView = YES;

    cell.theImageView.userInteractionEnabled = YES;
    [cell.theImageView addGestureRecognizer:tap];

    return cell;
}

重要的部分是确保图片视图具有userInteractionEnabled = YES且手势识别器具有cancelsTouchesInView = YES

如果点击图像视图,这将导致tapped方法触发,但不会突出显示该单元格。

答案 1 :(得分:0)

为什么不添加UIButton类型为custom.Will有点按钮操作。不会影响单元格突出显示

防止突出显示tablecell

cell.selectionStyle = UITableViewCellSelectionStyleNone;

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];