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;
  }
}
相关推荐
denggun123455 分钟前
ios卡顿监测和优化(二)
ios
ChineHe10 分钟前
Gin框架入门篇002_第一个Gin服务
macos·xcode·gin
Roc.Chang18 分钟前
解决 macOS 26.1 The application “xxxx” can’t be opened. 问题
macos
Digitally25 分钟前
适用于 iPhone 和 iPad 的最佳文件管理器
ios·iphone·ipad
TheNextByte128 分钟前
如何将 itel 手机中的联系人传输到 iPhone
ios·智能手机·iphone
赶路人儿32 分钟前
从intel mac迁移到M3后软件的兼容性
macos
Niap.pr1 小时前
Macos下访问树莓派系统(ext4)
macos
芳草萋萋鹦鹉洲哦1 小时前
【mac】解决Apple无法验证“fsevents.node”是否包含可能危害Mac安全或泄漏隐私的恶意软件
安全·macos
aini_lovee12 小时前
寻找 MAC 协议的 MATLAB 仿真
开发语言·macos·matlab
1024小神16 小时前
swift中使用ObservableObject单利模式的时候,用let 或 @ObservedObject 或 @StateObject 有什么区别
开发语言·ios·swift