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;
  }
}
相关推荐
前端不太难1 小时前
Flutter / RN / iOS,在长期维护下谁更容易“止损”?
flutter·ios·状态模式
CareyWYR10 小时前
我开发了一款工具箱类型APP:CreativeUtil
ios·app·mac
2501_9159184112 小时前
只有 Flutter IPA 文件,通过多工具组合完成有效混淆与保护
android·flutter·ios·小程序·uni-app·iphone·webview
软件小滔15 小时前
Mac 上看图?从需求出发的功能匹配
经验分享·macos·mac·应用推荐
软件小滔16 小时前
MacOS 26.0 网速监控我试了十几款,从系统API到可视化实现
经验分享·macos·mac·应用推荐
川石课堂软件测试18 小时前
Android和iOS APP平台测试的区别
android·数据库·ios·oracle·单元测试·测试用例·cocoa
liusheng18 小时前
Capacitor + React 的 iOS 侧滑返回手势
前端·ios
你好龙卷风!!!18 小时前
rabbitMQ入门 (mac)
macos·rabbitmq·ruby
2501_9159184119 小时前
除了 Perfdog,如何在 Windows 环境中完成 iOS App 的性能测试工作
android·ios·小程序·https·uni-app·iphone·webview
七月巫山晴20 小时前
【iOS】NSString&NSRange&NSCharacterSet
ios·cocoa·iphone