Swift UIGestureRecognizer 不工作/不做任何事情

Posted

技术标签:

【中文标题】Swift UIGestureRecognizer 不工作/不做任何事情【英文标题】:Swift UIGestureRecognizer is not working / is not doing anything 【发布时间】:2020-07-01 18:45:33 【问题描述】:

我有一个小问题,我现在几个小时都无法解决!我有一个带有标签的简单 ViewController,它链接到我的 ViewController 类。我还设置了一个 UIGestureRecognizer 以在单击标签时更改标签的文本。但奇怪的是什么都没有发生。 标签的文本从 Storyboard 中设置的任何内容更改为“Hello”,因此设置正确。但是当我点击标签时,什么也没有发生。 这是整个 ViewController 类:

import UIKit

class PremiumViewController: UIViewController 

    // Views
    @IBOutlet weak var premiumLabel: UILabel!
    
    // View Did Load
    override func viewDidLoad() 
        super.viewDidLoad()
        
        premiumLabel.text = "Hello"

        // Tap listener
        let tap = UIGestureRecognizer(target: self, action: #selector(PremiumViewController.clicked))
        premiumLabel.isUserInteractionEnabled = true
        premiumLabel.addGestureRecognizer(tap)
    
    
    @objc func clicked() 
        premiumLabel.text = "You clicked me"
    


【问题讨论】:

你的标签在stackview里面吗? 不,它只是一个限制在左上角的标签。 【参考方案1】:

使用UITapGestureRecognizer 而不是UIGestureRecognizer

改变

let tap = UIGestureRecognizer(target: self, action: #selector(PremiumViewController.clicked))

let tap = UITapGestureRecognizer(target: self, action: #selector(PremiumViewController.clicked))

【讨论】:

以上是关于Swift UIGestureRecognizer 不工作/不做任何事情的主要内容,如果未能解决你的问题,请参考以下文章

Swift UIGestureRecognizer 不工作/不做任何事情

Xcode 9 Swift 4 Playgrounds UIGestureRecognizer 不工作

单元格中的 swift GestureRecognizer

Swift:单元格 TableviewCell 中的手势不起作用

在swift中使用类类型变量作为函数参数[重复]

UIGestureRecognizer