ios - 未调用 UITapGestureRecognizer 选择器

标签 ios swift uikit uigesturerecognizer

在我的主窗口的 Root View Controller 类中,我设置了一个 UITapGestureRecognizer 属性。在调用重写的 viewDidLoad 函数期间,我已通过 addGestureRecognizer 方法将此属性添加到图像属性。我还将 image.isUserInteractionEnabled 设置为 true。

override func viewDidLoad() {
   image.addGestureRecognizer(tap)
   image.isUserInteractionEnabled = true

   self.view.addSubview(image)
}

var tap = UITapGestureRecognizer(target: self, action: #selector(imagePressed(_ :)))

遗憾的是,这不会导致在运行时调用 imagePressed()。令我困惑的是以下代码产生了预期的结果。

override func viewDidLoad() {
   var tap = UITapGestureRecognizer(target: self, action:#selector(imagePressed(_ :)))
   image.addGestureRecognizer(tap)
   image.isUserInteractionEnabled = true

   self.view.addSubview(image)
}

所以我的问题是,为什么在第一种情况下没有调用 UITapGestureRecognizer 的选择器?

使用 Swift 3 和 Xcode 8.2.1

最佳答案

我认为这里的问题是 addGestureRecognizer。 尝试将您的 viewDidLoad 更改为:

override func viewDidLoad() {
    var tap = UITapGestureRecognizer(target: self, action:#selector(imagePressed(_ :)))
    image.isUserInteractionEnabled = true

    self.view.addSubview(image)

    image.addGestureRecognizer(tapGesture)
}

关于ios - 未调用 UITapGestureRecognizer 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43359378/

相关文章:

ios - 如何在 Swift 中向 UICollectionViewCell 添加背景图像?

ios - 如何使用 Apple 开发者帐户创建可在 ios 10 和 ios 12 上信任的 ipa

objective-c - 属性不能标记为@NSManaged,因为它的类型不能在 Objective-C 中表示

ios - 自定义 UIView 子类,需要实现 init(coder :) when using instance vars

ios - SceneKit 游戏的架构,菜单屏幕的多个 View Controller ?

ios - IOS 中的 CallKit 扩展

ios - 在快速平移滑动手势期间获取 y 坐标的最简单方法

swift - 如何在图像上放置标签和按钮,以便即使缩放图像,它们也位于图像上的同一位置?

ios - 在 Swift 中更改 UISlider 拇指的大小

ios - 呈现 UIView 的最少代码