虽然大多数苹果文档编写得很好,但我认为" iOS事件处理指南 "是一个例外.我很难清楚地了解那里描述的内容.
该文件说,
在命中测试中,窗口调用
hitTest:withEvent:视图层次结构的最顶层视图; 此方法通过递归调用pointInside:withEvent:视图层次结构中返回YES的每个视图继续进行,继续向下移动层次结构,直到找到触摸发生在其边界内的子视图.该视图成为热门测试视图.
那么只有hitTest:withEvent:系统调用最顶层的视图,调用pointInside:withEvent:所有子视图,如果从特定子视图返回是YES,那么调用pointInside:withEvent:该子视图的子类?
当UIButton的帧位于其父级帧之外时,UIButton(或任何其他控件)是否可以接收触摸事件?因为当我尝试这个时,我的UIButton似乎无法接收任何事件.我该如何解决这个问题?
我有一个名为 view1 的 UIView。view1 有一个名为 subview 的子视图。我添加UITapGestureRecognizer到子视图如下:
UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap:)];
[subview addGestureRecognizer:recognizer];
Run Code Online (Sandbox Code Playgroud)
如果我点击了 subview 和 view1 之间重叠的区域,那么 handleTap 方法就会被调用。但是如果我在 view1 之外的子视图上点击一个区域,那么 handleTap 永远不会被调用。这种行为对吗?如果没有,对我应该检查什么有什么建议?
顺便说一句: UIPanGestureRecognizer 工作正常。它不会表现出上述行为。

subview uiview uigesturerecognizer ios uitapgesturerecognizer