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;
  }
}
相关推荐
安和昂7 小时前
iOS 工厂模式
ios
龙湾开发8 小时前
轻量级高性能推理引擎MNN 学习笔记 03.在iOS运行MNN的示例
c++·学习·ios·图形渲染·mnn
初遇你时动了情12 小时前
flutter 配置 安卓、Ios启动图
android·flutter·ios
WDeLiang16 小时前
Flutter - UIKit开发相关指南 - 线程和异步
flutter·ios·dart
小草cys16 小时前
Mac 在恢复模式下出现 旋转地球图标 但进度非常缓慢
macos
救救孩子把17 小时前
Mac 环境下 JDK 版本切换全指南
java·开发语言·macos
humiaor1 天前
Xcode报错:“Set `maskView` to `nil` before adding it as a subview of ZFMaskView
ide·macos·xcode·ios18报错
Unlimitedz1 天前
iOS音视频解封装分析
ios·音视频
lichao8904271 天前
谈谈未来iOS越狱或巨魔是否会消失
ios
fzxwl1 天前
隆重推荐(Android 和 iOS)UI 自动化工具—Maestro
android·ui·ios