【问题标题】:UIImageView in UITableCell not clickable [duplicate]UITableCell中的UIImageView不可点击[重复]
【发布时间】: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


【解决方案1】:

我建议不要更改单元格的 userInteractionEnabled 设置。您冒着搞乱表格视图功能的风险。别管它。

您如何将图像视图添加到单元格中?您是否将其添加到 cell.contentView? (表格视图是 UIView,但屏幕上出现的视图是单元格的内容视图)

如果您不希望用户能够选择单元格,请将表格视图上的 allowedSelection 属性设置为 NO。

【讨论】:

    猜你喜欢
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 2020-05-21
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    相关资源
    最近更新 更多