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;
  }
}
相关推荐
tangweiguo030519878 小时前
SwiftUI布局完全指南:从入门到精通
ios·swift
T1an-112 小时前
最右IOS岗一面
ios
踏着七彩祥云的小丑13 小时前
Mac——已安装工具查找
macos
小红的布丁13 小时前
公网 IP、私网 IP、路由表、转发表与 MAC 地址的关系
tcp/ip·macos·智能路由器
Lecxcy_Kastreain14 小时前
如何自适应 MacOS
macos
坏小虎15 小时前
Expo 快速创建 Android/iOS 应用开发指南
android·ios·rn·expo
光影少年16 小时前
Android和iOS原生开发的基础知识对RN开发的重要性,RN打包发布时原生端需要做哪些配置?
android·前端·react native·react.js·ios
北京自在科技16 小时前
Find My 修复定位 BUG,AirTag 安全再升级
ios·findmy·airtag
简单点了16 小时前
mac安装node环境
macos
简单点了16 小时前
mac安装vm装win11虚拟机
macos