美文网首页
关于UIView上添加一个手势,导致子视图相应事件无法响应的问题

关于UIView上添加一个手势,导致子视图相应事件无法响应的问题

作者: 张家杰仔 | 来源:发表于2017-07-04 10:17 被阅读15次

    以UITableView的cell点击事件为例
    1、初始化

     UITapGestureRecognizer *tapGester = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(action_tapGester)];
            [self addGestureRecognizer:tapGester];
    ///首先让UITapGestureRecognizer不要吃掉子窗口的事件:
            tapGester.cancelsTouchesInView = NO;
    ///然后设置自身的代理:
            tapGester.delegate = self;
    

    2、视图控制器遵守代理

    @interface ZJZDTableMenuView ()<UITableViewDelegate,UITableViewDataSource,UIGestureRecognizerDelegate>
    /** tableView */
    @property (nonatomic, strong) UITableView *tableView;
    @end
    

    3、实现代理方法

    #pragma mark - UIGestureRecognizerDelegate
    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
    {
        // 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件
        if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
            return NO;
        }
        return  YES;
    }
    
    

    相关文章

      网友评论

          本文标题:关于UIView上添加一个手势,导致子视图相应事件无法响应的问题

          本文链接:https://www.haomeiwen.com/subject/nopthxtx.html