【问题标题】:Why doesn't my UITapGestureRecognizer call its func?为什么我的 UITapGestureRecognizer 不调用它的函数?
【发布时间】:2023-03-08 13:40:02
【问题描述】:

我希望当我点击或双击我以编程方式声明的 UILabel 时发生一些事情,但是当我按下它时什么也没有发生。

这是我的代码,当我点击 heart_rate_value_UILabel 时应该会打印“HR_tap”。
但是什么也没发生。

class CentralViewController: UIViewController 
{
. . .


let heart_rate_value_UILabel: UILabel = 
{
    let this_UILabel = UILabel()
    return this_UILabel
}()
 . . .

override func viewDidLoad() 
{

value_row_x += 120       // + width of heart rate title
heart_rate_value_UILabel.frame = CGRect(x: value_row_x, y: value_row_y, width: value_row_width, height: value_row_height )
heart_rate_value_UILabel.center = CGPoint( x: value_row_x + value_row_width / 2, y: value_row_y + value_row_height/2 )
heart_rate_value_UILabel.textAlignment = .left
heart_rate_value_UILabel.text = "nnn"
heart_rate_value_UILabel.sizeToFit()
// Enable tap gesture detection:
    heart_rate_value_UILabel.isUserInteractionEnabled = true
    heart_rate_value_UILabel.addGestureRecognizer(UITapGestureRecognizer(target:self, action: #selector( self.HR_tap )))
self.view.addSubview( heart_rate_value_UILabel)
. . .
}

. . . 

@objc func HR_tap()
{
    print("*********************  HR_tap()")
}

【问题讨论】:

  • 直接试试#selector(HR_tap)
  • 试试lazy var heart_rate_value_UILabel : UILabel = ....
  • Itachi:那没用。拉贾:那没用。

标签: ios swift uilabel uitapgesturerecognizer gesture-recognition


【解决方案1】:

它按照上面的代码工作。 问题是“cockpit error”:我点击了错误的 UILabel。 我有一个用于显示值的标签,一个用于值的标题。 我错误地将点击手势识别添加到值而不是标题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多