为按钮分配一个字符串。斯威夫特

时间:2018-07-17 21:14:02

标签: ios swift

我有四个在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项)。有什么办法吗?

1 个答案:

答案 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("...")
}