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;
  }
}
相关推荐
Narutolxy3 小时前
在 macOS 和 Windows 平台上使用 SVN 的完整指南20241225
windows·macos·svn
liutaiyi83 小时前
Redis可视化工具 RDM mac安装使用
redis·后端·macos
app开发工程师V帅4 小时前
iOS 苹果开发者账号: 查看和添加设备UUID 及设备数量
ios
CodeCreator18184 小时前
iOS AccentColor 和 Color Set
ios
iOS民工5 小时前
iOS keychain
ios
阿7_QuQ6 小时前
Mac怎么远程控制Windows?
macos
m0_748238928 小时前
webgis入门实战案例——智慧校园
开发语言·ios·swift
tanghongchang12312 小时前
Mac Android studio 升级LadyBug 版本,所产生的bug
macos·android studio·ladybug
Legendary_00813 小时前
LDR6020在iPad一体式键盘的创新应用
ios·计算机外设·ipad
iBaoxing19 小时前
mac 使用 launchctl 实现每次登录系统时 frpc 就会自动启动
macos