实现 iOS UICollectionView的事件透传
比如当前的collectionViewA(蓝色), 还有一个collectionViewCellA(红色),collectionViewCellA(红色)里面有一个collectionViewB(绿色),
collectionViewCellB(绿色)里面有两个collectionViewCellB1(白色)、collectionViewCellB2(白色)
点击collectionViewCellA(红色) 弹出点击collectViewAcell
点击collectionViewB(绿色) 也弹出点击collectViewAcell
点击collectionViewCellB1(白色)、collectionViewCellB2(白色) 弹出点击collectViewBcell
- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event { CGPoint btnPointInA = [self.collectView convertPoint:point fromView:self]; if ([self.collectView pointInside:btnPointInA withEvent:event]) { for (UIView *subView in self.collectView.subviews) { CGPoint subViewPoint = [subView convertPoint:point fromView:self]; if ([subView pointInside:subViewPoint withEvent:event]) { return subView; } return self; } // 否则,返回默认处理 return [super hitTest:point withEvent:event]; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步