ios - 添加到 UILabel 的点击手势识别器不起作用

原文 标签 ios swift

我有以下代码将手势识别器添加到 UILabel。为 Storyboard 中的标签勾选了启用用户交互,但是当我点击标签时,没有调用 onUserClickingSendToken 方法。

class ViewController: UIViewController, MFMailComposeViewControllerDelegate {

    @IBOutlet weak var tokenDisplay: UILabel!
    var tapGestureRecognizer:UITapGestureRecognizer = UITapGestureRecognizer(target:self, action:  #selector(onUserClickingSendToken(_:)))

    override func viewDidLoad() {
        super.viewDidLoad()
        tapGestureRecognizer.numberOfTapsRequired = 1
        tokenDisplay.addGestureRecognizer(tapGestureRecognizer)
    }

    func onUserClickingSendToken(_ sender: Any)
    {
      ....

最佳答案

在 viewDidLoad 中初始化 tapRecognizer 应该这样做,因为您在 View 初始化之前定位了 self

class ViewController: UIViewController, MFMailComposeViewControllerDelegate {

@IBOutlet weak var tokenDisplay: UILabel!
var tapGestureRecognizer:UITapGestureRecognizer!

override func viewDidLoad() {
    super.viewDidLoad()
    tapGestureRecognizer = UITapGestureRecognizer(target:self, action:      #selector(onUserClickingSendToken(_:)))
    tapGestureRecognizer.numberOfTapsRequired = 1
    tokenDisplay.isUserInteractionEnabled = true
    tokenDisplay.addGestureRecognizer(tapGestureRecognizer)
}

@objc func onUserClickingSendToken(_ sender: Any)
{
  ....

关于ios - 添加到 UILabel 的点击手势识别器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41772783/

相关文章:

ios - 核心蓝牙-在后台执行长期操作

iphone - 如何使用自动版式以编程方式将UIView置于现有UIView的中心?

ios - Xcode 10,Swift 4-如何在多个 View Controller 之间传输数据?

swift - swift 的通用强制误解

ios - iOS应用的初始屏幕方向不适用于横向方向

ios - 在 Metal 计算着色器中排序

ios - 如果我使用Apple Push Notification服务进行即时消息传递,Apple会阻止我的帐户吗?

ios - 来自Web服务的图像在UITableview中刷新

swift - Swift,核心数据,可选的Integer16和keyPath

ios - 如何使用UIGestureRecognizer隐藏PKHUD?