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 不工作