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;
  }
}
相关推荐
__WanG10 小时前
如何申请 Family Controls 权限
ios·swiftui·权限·应用时间管理
AcceptedLin12 小时前
删除MacBook启动台内顽固应用程序图标
经验分享·macos
Program Debug17 小时前
Mac安装JDK
java·开发语言·macos
SatVision炼金士18 小时前
Mac 安装Homebrew记录
java·elasticsearch·macos·maven
牛奔19 小时前
Mac 使用 React-Native 使用无线调试商米机,配合Stripe 终端
macos
怎么没有名字注册了啊20 小时前
(Mac)Mac权限问题,运行没有数字签名的dmg
macos
allanGold21 小时前
【Mac】【Vagrant】【类xshell的Termora】centos连接步骤
macos·centos·vagrant
守城小轩21 小时前
Chromium 142 编译指南 macOS篇:安装 Xcode(二)
macos·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发
天庭鸡腿哥1 天前
IOS上收费的软件,Android上免费!
macos·visual studio·everything
天庭鸡腿哥1 天前
大小不足1M,干翻Windows!
microsoft·macos·visual studio·everything