我们可以将点击手势添加到 UILabel 吗?

Posted

技术标签:

【中文标题】我们可以将点击手势添加到 UILabel 吗?【英文标题】:Can we Add Tap Gesture to UILabel? 【发布时间】:2017-02-27 15:10:22 【问题描述】:

我在 UIView 中添加了标签并创建了它的插座,然后在 UITapGestureRecognizer 的帮助下我添加了功能,但是当我点击或单击标签时。标签文本不会改变。我搜索了类似的问题,我得到了答案,也是我写的,但标签文本仍然没有改变。用 Swift 3.0 编写的代码。 这是我写的代码-

 import UIKit

class testingViewController: UIViewController 

    @IBOutlet weak var testLabel: UILabel!
    override func viewDidLoad() 
        super.viewDidLoad()
      let tap:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(showDatePicker))
      tap.numberOfTouchesRequired = 1
      tap.numberOfTapsRequired = 1
      testLabel.addGestureRecognizer(tap)
      testLabel.isUserInteractionEnabled = true// after adding this it worked
        // Do any additional setup after loading the view.
    

  func showDatePicker()
    print("testing")
  

    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    


    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    
    */


【问题讨论】:

检查标签的用户交互。见邓肯 C 的回答 @KrunalBhavsar userInteraction 在情节提要中启用,但是当我添加代码时它起作用了,为什么会这样 请检查是否有任何其他视图(透明视图)覆盖您的标签。如果不保密,您可以分享您的源代码(项目)吗? 不,没有其他视图。 @KrunalBhavsar 我已经添加了整个班级检查它我也会添加图像 【参考方案1】:

可以,但您需要将标签的 isUserInteractionEnabled 标志设置为 true

【讨论】:

userInteraction 已经在情节提要中启用,但是当我添加代码 testLabel.isUserInteractionEnabled = true 时,它​​起作用了,为什么会这样? 我不确定。在 IB (Interface Builder) 中设置标志也应该可以工作。 我知道我又问过这个问题了,但我问是因为从情节提要中启用了 userInteraction 并且它不起作用 @Ronit,我刚刚对其进行了测试,我能够向标签添加轻击手势识别器,并通过检查 IB 中标签上的“用户交互启用”标志来使其响应。 (事实上​​,我在 IB 的场景中放置了手势识别器。我必须编写的唯一自定义代码是在手势识别器上调用的操作。)

以上是关于我们可以将点击手势添加到 UILabel 吗?的主要内容,如果未能解决你的问题,请参考以下文章

点击 UILabel 部分的手势

将点击手势添加到插座集合

为啥将 UILabel 设置为完全透明会丢失点击手势?

向 UIImageView 添加轻击手势以更改 UILabel?

如何使用自定义表格视图单元格中识别的点击手势从 UILabel 呈现视图控制器?

UILabel 点击手势识别器似乎不起作用