【发布时间】:2019-02-14 12:17:23
【问题描述】:
我正在尝试在 swift 4 的函数中为动态创建的 UILabel 添加点击手势,但它没有触发 UITapGestureRecognizer 函数。当我从 viewDidLoad 函数添加点击手势时它正在工作,但我必须从其他函数添加点击手势。
这里是代码
override func viewDidLoad() {
super.viewDidLoad()
createLabel()
}
func createLabel() {
let label = UILabel()
label.text = "abc"
label.numberOfLines = 0
label.frame.size.width = self.otherlinksStack.bounds.width
label.font = label.font.withSize(17) // my UIFont extension
label.sizeToFit()
label.tag = 1
self.otherlinksStack.addSubview(label)
let labelTapGesture = UITapGestureRecognizer(target:self,action:#selector(self.doSomethingOnTap))
label.isUserInteractionEnabled = true
label.addGestureRecognizer(labelTapGesture)
}
@objc func doSomethingOnTap() {
print("tapped")
}
【问题讨论】:
-
在问题中添加代码
-
嗯,您是否将
userInteractionEnabled设置为true? -
是的,我将 userInteractionEnabled 设置为 true。但它不起作用
-
您需要提供更多信息 - 请参阅 How to Ask 和 minimal reproducible example
-
请查看问题中的代码。我编辑了它。
标签: ios uilabel swift4 uitapgesturerecognizer programmatically-created