gpt4 book ai didi

objective-c - 我可以将 UITapGestureRecognizer 添加到我的 Controller self.view,但不能添加到任何自定义 View 。为什么?

转载 作者:行者123 更新时间:2023-11-30 10:07:18 26 4
gpt4 key购买 nike

我的 ViewController 符合 UIGestureRecognizerDelegate。

我在此 ViewController 中创建了各种 View 。一个名为 CircleView 的自定义 View 和一个名为 testView 的常规 UIView。

我有以下从 viewDidLoad 调用的函数

func addTapGesturesOnNumberPadDisplay() {
if tapGestureRecognizerNumberPadView == nil {
tapGestureRecognizerNumberPadView = UITapGestureRecognizer(target: self, action: "handleTap:")
tapGestureRecognizerNumberPadView!.delegate = self
//self.circleView!.addGestureRecognizer(tapGestureRecognizerNumberPadView!) // 1
//self.testView!.addGestureRecognizer(tapGestureRecognizerNumberPadView!) // 2
self.view.addGestureRecognizer(tapGestureRecognizerNumberPadView!) // 3
}
}

此代码有效,第 3 行处于事件状态。我的func handleTap(sender: UITapGestureRecognizer) {被触发。但是如果我注释掉第 3 行,并使第 1 行或第 2 行处于事件状态... handleTap:永远不会被击中。

这是为什么?

最佳答案

确保您的UIViewuserInteractionEnabled 设置为true。在这里,层次结构也很重要。

如果 circleViewtestView 顶部有任何 UIView,那么它将无法工作。

除此之外,第三行之所以有效,是因为您要将 UITapGestureRecognizer 添加到 UIViewControllersuperview 中。

关于objective-c - 我可以将 UITapGestureRecognizer 添加到我的 Controller self.view,但不能添加到任何自定义 View 。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329558/

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