![]() |
1
5
hitTest:withEvent:从窗口开始。每个视图在递归地测试自身之前测试其子视图,依此类推。但是,如果视图的userInteractionEnabled为NO,则它从hitTest:withEvent:返回nil,而不测试其子视图。这样的视图当然是经过hit测试的,但它立即回复说,它或它的任何子视图都不是hit视图。 您的UIScrollView将其userInteractionEnabled设置为NO。因此,当vcViewContainerView测试其子视图UIScrollView时,UIScrollView返回nil,因为其userInteractionEnabled为NO,vcViewContainerView使用pointInside:withEvent:on本身,发现触摸在其内部,并将其作为点击视图返回(和搜索结束)。这解释了你得到的结果。 当您通过层进行命中测试时,不会发生这种情况的原因是层是不可触摸的,并且对触摸的规则一无所知,因此它们忽略userInteractionEnabled,这是一个视图功能,而不是层功能。层命中测试是一种权宜之计,只在视图包含整个层层次结构(没有视图层次结构)并且您希望模拟特定层是可触摸的时使用。这些文档确实告诉您,层的hitTest:的逻辑与视图的hitTest:withEvent:的逻辑不同,尽管它们无法确切地解释如何实现。
|
![]() |
2
1
您可能希望尝试子类化UIScrollView,以接收对其中对象的触摸。
这是一个工作子类。多亏了这么一个社区,因为我相信我原来在这里发现了这样的东西,只是现在挖不到原来的帖子。
以及.m:
应该可以。 |
![]() |
3
0
设置图像视图
|
![]() |
Mark George · 如何在swift ui中为文本提供内部填充 1 年前 |
![]() |
Safa Ads · CDN:无法下载中继URL:https://cdn.jsdelivr.net/cocoa/Specs/2/e/c/RxSwift/3.0.0-rc.1/RxSwift.podspec.json响应:SSL连接错误 1 年前 |
![]() |
Frakcool · 满足条件时,SwiftUI动画背景颜色更改 2 年前 |