向我的UITapGestureRecognizer
添加一个UILabel
。我已经为要添加点击事件的outlet collection
创建了一个UILabels
。这是我的代码:
Outlet Collection Name = viewLabels
let removeLabelTapGesture = UITapGestureRecognizer(target: self, action: #selector(removeTagLabel(_:)))
for label in (0..<viewLabels.count) {
viewLabels[label].addGestureRecognizer(removeLabelTapGesture)
}
@objc func removeTagLabel(_ sender: UITapGestureRecognizer) {
print ("inside removeTagLabel")
}
我正在遍历我的插座集合,并将gesture recognizer
添加到每个UILabel
中。控制台中没有任何内容。
打了几个小时后,我想尝试将gesture recognizer
分别添加到每个UILabel
中。
viewLabels[0].addGestureRecognizer(removeLabelTapGesture)
现在,这适用于UILabels
之一。按照这种方法,如果我单独进行操作,则会将gesture event
添加到添加事件的最后一个UILabel
。
viewLabels[0].addGestureRecognizer(removeLabelTapGesture)
.
.
.
viewLabels[x].addGestureRecognizer(removeLabelTapGesture) //Will add gesture event to this UILabel
是否可以将gesture recognizer
添加到我的每个UILabels
中?
答案 0 :(得分:4)
您的方法均无效。问题是您的代码尝试将完全相同的轻击手势识别器添加到所有标签。您不能那样做,就像您自己不能同时在纽约和伦敦一样。
答案 1 :(得分:1)
手势只能与一个视图相关联
for label in viewLabels {
let removeLabelTapGesture = UITapGestureRecognizer(target: self, action: #selector(removeTagLabel(_:)))
label.addGestureRecognizer(removeLabelTapGesture)
}
例如,创建一个UIImageView,并将其多次添加到self.view,由于它是单个对象,您只会获得一次