IOS 自定义UITableViewCell 子控件无法接受到事件

该问题浪费了3个小时的时间

一 问题描述

自定义UITableViewCell,Cell 中有两个UIImageView 子控件,自控都需要实现双击,让图片全局展示。


二 错误代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   BZEffectImgViewCell *cell = [BZEffectImgViewCell cellWithTableView:tableView];
   UITapGestureRecognizer  *doubleRecognizer = [[UITapGestureRecognizer alloc]
                                                initWithTarget:self
                                                action:@selector(handlePinchGestureFrom:)
                                                ];
    doubleRecognizer.numberOfTapsRequired = 2; 
    /*
     *为 BZEffectImgViewCell 子空间 beforeImageView,但是事件监听不成功
     */
    [cell.beforeImageView addGestureRecognizer:doubleRecognizer];
    return cell;
    
}


三 正确代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   BZEffectImgViewCell *cell = [BZEffectImgViewCell cellWithTableView:tableView];
   UITapGestureRecognizer  *doubleRecognizer = [[UITapGestureRecognizer alloc]
                                                initWithTarget:self
                                                action:@selector(handlePinchGestureFrom:)
                                                ];
    doubleRecognizer.numberOfTapsRequired = 2; 
    //设置 cell.afterImageView.userInteractionEnabled = YES; 即可
    cell.afterImageView.userInteractionEnabled = YES;
    [cell.beforeImageView addGestureRecognizer:doubleRecognizer];
    return cell;
    
}



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。