【发布时间】:2014-06-19 21:37:09
【问题描述】:
我正在实现一个 UITableView,其中每个单元格都有一个UIImageView 子视图。我希望这个UIImageView 可以点击,所以我做了以下操作:
在tableview:cellForRowAtIndexPath 函数中,当我初始化单元格时(当无法从已使用的单元格中出列时),我对图像视图进行了以下初始化:
imageView.userInteractionEnabled = YES;
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(replyTapped:)];
singleTap.numberOfTapsRequired = 1;
[imageView addGestureRecognizer:singleTap];
并且单元格的 userInteractionEnabled 属性为 NO,因为我不希望选择整个单元格,如下所示:
cell.userInteractionEnabled = NO;
在同一个类中,我定义了这个回调:
- (void)imageviewTapped:(UISwipeGestureRecognizer* )tap
但是当我点击 imageview 时,似乎永远不会调用这个 imageviewTapped 函数..
我想知道我是否在这里做错了什么,将 TapGestureRecognizer 添加到单元格的子视图是什么好习惯?
谢谢
【问题讨论】:
-
userInteraction 必须启用以允许子视图接收触摸。您始终可以在表格的
didSelectRow方法中调用deselectRow,因此永远不会选择它以防止它像您想要的那样被“触摸”。
标签: ios objective-c uitableview uitapgesturerecognizer