我有四个在for循环中以编程方式相同创建的按钮:
let moreButton = UIButton(type: .system)
moreButton.frame = CGRect(x: 0, y: 0, width: 80, height: 25)
moreButton.center.x = self.view.center.x + 115
moreButton.center.y = OficerAgendas.center.y + CGFloat(yOffset + 30)
moreButton.contentMode = .scaleAspectFit
moreButton.layer.cornerRadius = 5
moreButton.tintColor = UIColor.white
moreButton.backgroundColor = UIColor(red:0.76, green:0.49, blue:0.49, alpha:1.0)
moreButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 13.0)
moreButton.setTitle("My Opinion", for: UIControl.State.normal)
moreButton.addTarget(self, action: #selector(mainPage.buttonAction(_:)), for: .touchUpInside)
self.view.addSubview(moreButton)
我掌握了单击内修饰的基本代码。
@objc func buttonAction(_ sender:UIButton!)
{
print("Button tapped")
}
我希望代码能够执行的操作是区分正在按下的按钮(因为它们都是相同的“ moreButton”,因此我无法创建单独的buttonAction代码)。理想情况下,我可以分配创建按钮的for循环的迭代次数(在1 ... items类型的循环中为for项)。有什么办法吗?
答案 0 :(得分:0)
您可以在按钮上设置标签:
moreButton.tag = 1
(如果使用迭代则为变量)
然后在方法中,您可以使用
按钮switch sender.tag
{
case 1: print("1") // button 1 clicked
break
case 2: print("2") // button 2 clicked
break
default: print("...")
}