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;
  }
}
相关推荐
centor1 小时前
国际版 UnitySetup-Android-Support 安装 Mac 设备
android·macos
旭日跑马踏云飞1 小时前
【Mac】实用技巧-在新窗口中打开当前文件夹
macos
先飞的笨鸟2 小时前
2026 年 Expo + React Native 项目接入微信分享完整指南
前端·ios·app
初级代码游戏2 小时前
iOS开发 SwiftUI 5 : 文本输入 密码输入 多行输入
ios·swiftui·swift
iosTiov3 小时前
ios生态的分发密钥:企业签、V3签、TF签深度解析与选型指南
安全·ios·团队开发·苹果签名·稳定
林疏safe3 小时前
CAD2026最新mac的安装教程收集免费分享
macos
Digitally4 小时前
如何高效安全地将 iPhone 与 Mac 同步
安全·macos·iphone
程序员允诺4 小时前
办公 WiFi 二次隔离下的远程桌面解决方案实践(Mac → Win11)
macos
00后程序员张4 小时前
在 iPhone 上进行 iOS 网络抓包的实践经验
android·ios·小程序·https·uni-app·iphone·webview
2501_915918414 小时前
介绍如何在电脑上查看 iPhone 和 iPad 的完整设备信息
android·ios·小程序·uni-app·电脑·iphone·ipad