gpt4 book ai didi

ios - UITapGestureRecognizer 未检测到 UIScrollView 中的 CALayer

转载 作者:行者123 更新时间:2023-11-30 14:18:42 25 4
gpt4 key购买 nike

我正在尝试检测作为 UIScrollView 子层的 CALayers 上的点击手势事件。以下是我设置识别器的方法:

在viewDidLoad中:

    self.tapRecognizer = UITapGestureRecognizer(target: self, action: "tapHandler:")
self.tabScroller.addGestureRecognizer(tapRecognizer)

点击处理方法:

 func tapHandler(recognizer: UITapGestureRecognizer) {
var touchLocation = recognizer.locationInView(recognizer.view)

if recognizer.state == UIGestureRecognizerState.Ended {

if let touchedLayer: CALayer = self.tabScroller.layer.hitTest(touchLocation) {
println("\(touchedLayer.name)")
}
}
}

我知道 TapHandler 正在工作,因为它将执行放置在其中任意位置的基本 println("") 字符串。

但是 println("(touchedLayer.name)") 连续打印 nil,我无法弄清楚为什么它无法识别 CALayer 上方的点击。

使用 CALayers 添加到 tabScroller

tabScroller.layer.addSublayer(brushB)

我做错了什么?

最佳答案

您的 CALayer 和带有点击的 UIView 位于 View 层次结构的两个不同层上。实际上,核心动画比 View 的级别要低,UIView 是由层组成的。因此,您必须使用 hitTest 或类似的函数来确定您正在点击的图层。

关于ios - UITapGestureRecognizer 未检测到 UIScrollView 中的 CALayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30793849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com