Swift - 如何在按钮被按下时获取其值?

6

当按钮被按下时,我希望获取按钮的值。

我尝试通过给定代码打印一个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个回答

6

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

println(sender.titleLabel.text)

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


6
你想达到的目标之一是使用UIButtontag属性。在创建按钮的循环中添加这行内容:
btn_creat.tag = self.rand_creation(1, second: 9)
var myString = String(btn_creat.tag)

现在你的标签已经设置为按钮的编号,你可以在 btnAction: 代码中打印它:
println(sender.tag)

3
您已经设置了标题,所以只需获取它即可。
func btnAction(sender: UIButton) {
    println(sender.currentTitle!)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接