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;
  }
}
相关推荐
李玮豪Jimmy1 小时前
MacOS 上安装 JDK 并实现多版本灵活切换
macos
mixboot1 小时前
VoxCPM 1.5.0 macOS
macos·voxcpm
甜可儿1 小时前
mac环境安装不同版本maven
java·macos·maven
bl4ckpe4ch1 小时前
从零开始Mac OS 开荒整理笔记
笔记·macos·开荒
ipad协议开发1 小时前
企业微信iPad协议的开发进程
ios·企业微信·ipad
七月巫山晴1 小时前
【iOS】OC中的一些宏
前端·ios·objective-c
初级代码游戏11 小时前
iOS开发 SwiftUI Text的基本用法
ios·swiftui·swift
TheNextByte120 小时前
如何安全有效地清除iPad数据以便出售?
安全·ios·ipad
十二测试录21 小时前
Android和iOS测试区别
android·经验分享·ios·职场发展·ab测试
张飞签名上架1 天前
深耕全球市场:App上架iOS与Google Play全流程指南
macos·ios·cocoa·ios上架·上架·谷歌上架