如何获得长按按钮当前标题
How to get long pressed button's current title
我在许多按钮上使用 UILongPressGestureRecognizer,当我长按它时,我想获得它的当前值 title.I 我对不同工作的所有按钮使用相同的标签,所以我不能使用标签来获取 title.Since 我的发件人是 UILongPressGestureRecognizer 我不能使用 sender.currentTitle!在我的行动中 too.Thank 你。
这是我的代码:
for i in self.masalarView.subviews{
if i.tag == 102{
i.removeFromSuperview()
}
}
for i in self.masalarArray{
let masa = UIButton(frame : CGRect(x : Double(i.masaButonLeft)! , y : Double(i.masaButonTop)! , width : Double(i.masaButonGenislik)! , height : Double(i.masaButonYukselik)!))
masa.setTitle(i.masaTableName, for: .normal)
masa.addTarget(self, action: #selector(self.masaAction(sender:)), for: .touchUpInside)
masa.tag = 102
let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(longPressed(sender:)))
masa.addGestureRecognizer(longPressGestureRecognizer)
self.masalarView.addSubview(masa)
}
}
func longPressed(sender : UILongPressGestureRecognizer){
//This is where i want to get my long pressed button title
self.performSegue(withIdentifier: "mySegue", sender: self)
}
查看 UILongPressGestureRecognizer UIGestureRecognizer 的超级 class,它有一个 属性 称为 view,它是发送手势的视图。更喜欢命名变量而不是标签。使用标签的理由很少。
如果不清楚,请编辑,UIButton 是 UIView 的子class,因此您使用三重相等测试引用相等性:
if longPressGestureRecognizer.view === mybutton { // do stuff here }
UILongPressGestureRecognizer 得到一个 属性 命名视图,return 手势识别器附加到该视图。您可以将视图投射到 UIButton,然后阅读标题。
if let button = sender.view as? UIButton {
print(button.title)
}
我在许多按钮上使用 UILongPressGestureRecognizer,当我长按它时,我想获得它的当前值 title.I 我对不同工作的所有按钮使用相同的标签,所以我不能使用标签来获取 title.Since 我的发件人是 UILongPressGestureRecognizer 我不能使用 sender.currentTitle!在我的行动中 too.Thank 你。
这是我的代码:
for i in self.masalarView.subviews{
if i.tag == 102{
i.removeFromSuperview()
}
}
for i in self.masalarArray{
let masa = UIButton(frame : CGRect(x : Double(i.masaButonLeft)! , y : Double(i.masaButonTop)! , width : Double(i.masaButonGenislik)! , height : Double(i.masaButonYukselik)!))
masa.setTitle(i.masaTableName, for: .normal)
masa.addTarget(self, action: #selector(self.masaAction(sender:)), for: .touchUpInside)
masa.tag = 102
let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(longPressed(sender:)))
masa.addGestureRecognizer(longPressGestureRecognizer)
self.masalarView.addSubview(masa)
}
}
func longPressed(sender : UILongPressGestureRecognizer){
//This is where i want to get my long pressed button title
self.performSegue(withIdentifier: "mySegue", sender: self)
}
查看 UILongPressGestureRecognizer UIGestureRecognizer 的超级 class,它有一个 属性 称为 view,它是发送手势的视图。更喜欢命名变量而不是标签。使用标签的理由很少。
如果不清楚,请编辑,UIButton 是 UIView 的子class,因此您使用三重相等测试引用相等性:
if longPressGestureRecognizer.view === mybutton { // do stuff here }
UILongPressGestureRecognizer 得到一个 属性 命名视图,return 手势识别器附加到该视图。您可以将视图投射到 UIButton,然后阅读标题。
if let button = sender.view as? UIButton {
print(button.title)
}