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;
  }
}
相关推荐
liulilittle6 小时前
FileStream C++
开发语言·c++·cocoa
1024小神7 小时前
Swift中跨view视图组件实现全局状态共享的方式汇总
ios·swiftui·swift
2501_916007479 小时前
TCP 抓包分析实战,从三次握手到自定义协议解析的完整方法
网络协议·tcp/ip·ios·小程序·uni-app·php·iphone
_大学牲12 小时前
听说你毕业很多年了?那么来做题吧🦶
flutter·ios·app
明君8799714 小时前
Flutter横向树形选择器实现方案
android·ios
无痕melody15 小时前
苹果ios手机ipad安装配置ish终端shell工具
ios·智能手机·ipad
mike102316 小时前
swiftUI状态管理
ios·swiftui
AI云原生16 小时前
openEuler软件生态体验——从桌面到服务器的全方位探索
运维·服务器·windows·macos·docker·云计算·腾讯云
KevinShi_BJ17 小时前
MacOS 安装 Docker
macos
2501_9151063217 小时前
H5 混合应用加密实践,从明文资源到安全 IPA 的多层防护体系
android·安全·ios·小程序·uni-app·iphone·webview