ios - UITapGestureRecognizer 未在 Swift 3 中触发

标签 ios swift uigesturerecognizer

我在自定义 UIViewController 中有以下代码:

let tapDismissTextField = UITapGestureRecognizer(target: self, action: #selector(dismissTap))

func dismissTap() {

    print("Tap!")
}

override func viewDidLoad() {
    super.viewDidLoad()

    self.view.addGestureRecognizer(tapDismissTextField)
    self.friendsView.addGestureRecognizer(tapDismissTextField)
}

没有“点击!”正在打印线条,因此手势识别器未触发。可能出了什么问题?

在此 Controller 中的所有 View 中,已启用用户交互都是

如果有任何帮助,此 View Controller 将嵌入到 UINavigationController 中。

最佳答案

1. 移动此行:

let tapDismissTextField = UITapGestureRecognizer(target: self, action: #selector(dismissTap))

viewDidLoad() 里面,因为在方法/函数/闭包之外的 self 返回一个 (NSObject) -> () -> YourClass()(一个 NSObject),而不是你的类,它实际上是 view 的所有者。

2. 我建议只保留一个 GestureRecognizer

View

关于ios - UITapGestureRecognizer 未在 Swift 3 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42468453/

相关文章:

ios - 你如何确定一个 spritenode 是否不等于 nil?

c# - 无法在 Portrait 中锁定一个 View Controller ,xamarin IOS

swift - 延迟更改分数

ios - 无法快速将类型 'UINavigationController' 的值转换为 'UIViewController'

ios - 手势识别器代码在离开和回来查看后被调用两次

ios - 如何动态扩展 UITableViewCell 高度?

ios - 如何在 ios 中管理 facebook 集成中的 session

ios - Swift 自定义后退按钮和目的地

ios - 如何让 uitableViewCell 同时处理点击和长按?

ios - 将对象传递给选择器