iOS 如何让超出父视图的部分响应事件

1.demo

奉上自己的demo

2. 不能点击的原因

由于找不到hittest view,所以没有可以响应的uiresponser对象,所以点击没有任何反应

3. 解决思想

覆写hittest方法让父视图可以找到这个视图就好

4. 代码演示
复制代码
- (UIView *)hitTest:(CGPoint)point withEvent:    (UIEvent *)event
{
  if (!self.isUserInteractionEnabled
      || self.isHidden
      || self.alpha <= 0.01)
  {
      return nil;
  }
  else
  {
      for (UIView *subView in [self.subviews reverseObjectEnumerator]) 
        {
          CGPoint convertedPoint = [subView convertPoint:point fromView:self];
          UIView *hitView = [subView hitTest:convertedPoint withEvent:event];
          if (hitView)
          {
              return hitView;
          }
      }
      return self;
  }
}
相关推荐
MonkeyKing_sunyuhua8 小时前
Mac 上用 MTR 做链路测试很适合排查“ping 不通 / 偶发丢包 / 某一跳延迟高”的问题
macos
FreeBuf_10 小时前
苹果紧急发布iOS 15.8.7更新以防御“Coruna“漏洞利用工具包
macos·ios·cocoa
BIBABULALA11 小时前
语音算法面试复习系列1——语音信号处理基础(上)
macos·语音识别·xcode
开心就好202512 小时前
移动应用上架到应用商店的完整指南:原理与详细步骤
后端·ios
TESmart碲视13 小时前
Mac+PC双系统如何共享双屏?KVM切换器选购的5个关键指标|TESmart用户真实体验复盘
macos·计算机外设·kvm切换器·tesmart·双屏kvm切换器·碲视
wx_xsooop_wx14 小时前
iOS 被拒 4.3a Cocos【全面解读】
ios
00后程序员张14 小时前
使用克魔助手(Keymob)查看 iOS 设备日志与崩溃报告
android·macos·ios·小程序·uni-app·cocoa·iphone
&黄昏的乐师15 小时前
VMware安装MAC虚拟机教程(安装过程记录)
macos
iOS日常15 小时前
Xcode SPM 太慢/报错?代理 + 缓存修复
ios