Swift - 如何获取按钮值,何时按下?

时间:2014-06-17 08:55:32

标签: swift

我希望得到按钮值,当它被按下时。

我已尝试按照给定代码打印4 * 4矩阵 -

func creation_of_btn()
{
var x_axis:CGFloat = 50.0
var y_axis:CGFloat = 50.0

for x in 1...4
{
  for y in  1...5
  {
       let btn_creat = UIButton.buttonWithType(UIButtonType.Custom) as UIButton!
       btn_creat.frame = CGRectMake(x_axis, y_axis, 100, 100)
       x_axis += 110.0
       btn_creat.backgroundColor = UIColor .redColor()

       btn_creat.font = UIFont .boldSystemFontOfSize(50)

       var myString = String(self.rand_creation(1, second: 9))
       btn_creat .setTitle(myString, forState: UIControlState.Normal)
       btn_creat.addTarget(self, action: "btnAction:", forControlEvents: UIControlEvents.TouchUpInside)
       self.view.addSubview(btn_creat)
   }

   x_axis = 50.0
   y_axis += 110.0
}
}

按下按钮时,代码为 -

func btnAction (sender:UIButton!)
{
   println("pressed")
}

通过上面的代码,我得到以下输出 - enter image description here

现在,当我按下按钮1时,我想打印按钮值,即1。

3 个答案:

答案 0 :(得分:6)

实现目标的一种方法是使用tag的{​​{1}}属性。

将此行添加到创建按钮的循环中:

UIButton

现在您的代码已设置为按钮编号,您可以使用btn_creat.tag = self.rand_creation(1, second: 9) var myString = String(btn_creat.tag) 代码进行打印:

btnAction:

答案 1 :(得分:4)

您收到按下的 UIButton 作为sender参数。因此,您可以阅读 UIButton 的标题文本。

println(sender.titleLabel.text)

或者,如果按钮的titleLabel与值不同,请使用属性tag。您可以在UIButtons的创建过程中定义标记值。

答案 2 :(得分:0)

您已经设置了标题,所以只需将其恢复。

func btnAction(sender: UIButton) {
    println(sender.currentTitle!)
}