cell嵌套TableView时,改变内层cell的响应链。

最近项目中需要在嵌套的TableView的cell点击时响应最外层的选择事件,但是嵌套的cell的按钮事件却要响应。所以我们需要在嵌套的cell上做一次处理。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
    // 判断触摸位置是否在当前视图内
    if ([self pointInside:point withEvent:event]) {
        // 只遍历contenView上的子视图  方便控制
        NSArray<UIView *> * superViews = self.contentView.subviews;
        // 倒序 从最上面的一个视图开始查找
        for (NSUInteger i = superViews.count; i > 0; i--) {
            UIView * subview = superViews[i - 1];
            // 转换坐标系 使坐标基于子视图
            CGPoint newPoint = [self convertPoint:point toView:subview];
            // 得到子视图 hitTest 方法返回的值
            UIView * view = [subview hitTest:newPoint withEvent:event];
            // 如果子视图返回一个view 就直接返回 不在继续遍历
            if (view ) {
//                NSLog(@"%@",[view class]);
                return view;
            }
        }
        
        return [[self superview] superview];
    }
    return nil;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,008评论 3 119
  • Chapter 01 要说起我的QQ号,那也是有故事的。 这还得从我爸的诺基亚手机说起,小的时候我家就我爸自己手里...
    古小枫阅读 387评论 0 1
  • 当一个人走的地方多了,呆的城市多了之后,才能真正体会什么是"此心安处便是吾乡"。 从一个地方到另一个地方…… 当一...
    layeer阅读 957评论 2 4
  • 2018年8月16日 星期四 阴 最近看了前半生,很有感慨,觉得自己还有很多很多需要学习的地方。 估计有很多人都想...
    艺龄菇凉阅读 332评论 2 0
  • 第01计 瞒天过海 孙悟空瞒天过海的得到了金箍棒 第02计 围魏救赵 围脖是为了就沼泽李的鸭子 第03计 借刀杀人...
    韩佳坤阅读 487评论 0 1