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;
  }
}
相关推荐
雪域迷影13 小时前
MacOS中运行Next.js项目注册新用户时MongoDB报错MongoServerError
mongodb·macos·react·next.js
西京刀客16 小时前
macOS 打出来的 tar 包,Linux 常见告警(tar 包里带了 macOS 的扩展属性(xattr))
linux·运维·macos
码农垦荒笔记16 小时前
OpenClaw 实战 #02-1:新手一把过(原Clawdbot )保姆级安装教程-Mac版
人工智能·macos·openclaw
pop_xiaoli18 小时前
OC-实现下载单例类
ios·objective-c·cocoa·xcode
denggun1234518 小时前
Material 和 Cupertino
macos·objective-c·cocoa
zhyongrui19 小时前
SnipTrip 菜单 Liquid Glass 实现方案:结构、材质、交互与深浅色策略
ios·性能优化·swiftui·交互·开源软件·材质
zhyongrui20 小时前
SnipTrip 不发烫的实现路径:局部刷新 + 合成缓存 + 峰值削减
ios·swiftui
周杰伦_Jay20 小时前
【Mac 上命令行安装 Claude Code】(Claude 的终端版 AI 编程助手)完整指南
人工智能·macos·claude code
广拓科技20 小时前
微信历史版本含下载地址( Windows PC | 安卓 | MAC )及设置微信不更新
macos·微信
Art&Code20 小时前
M系列Mac保姆级教程:Clawdbot安装+API配置,30分钟解锁AI自动化!
运维·macos·自动化