从UILabel Swift中获取一个Int

时间:2015-03-27 16:41:34

标签: ios swift uibutton xcode6 uilabel

我有问题,有大量的按钮有一个数字作为标签,所以我想我可以把标签作为整数而不是为每个按钮创建一个动作?!

@IBAction func NumberInput(sender: UIButton) {
    var input:Int = sender.titleLabel as Int
}

6 个答案:

答案 0 :(得分:4)

如果您想这样做,可以使用stringInt转换为string.toInt(),例如:

if let input = sender.titleLabel?.text?.toInt() {
    // do something with input
} else {
    // The label couldn't be parsed into an int
}

但是,我建议您使用UIView.tag或继承UIButton并为其添加Int属性来完成此操作,以防您更改标签的显示。< / p>

答案 1 :(得分:2)

您应该确保文本存在

var input:Int = (sender.titleLabel.text! as NSString).integerValue

答案 2 :(得分:1)

另一种在swift中转换标签的方法:

let num = getIntFromLabel(labelView)

答案 3 :(得分:0)

您无法将UILabel转换为Int。我想你想要这个:

var input : Int? = sender.titleLabel.text?.toInt()

答案 4 :(得分:0)

将所有按钮连接到1个IBAction。然后根据您将如何使用它来创建以下变量和set / get方法。

注意:&#34;某事&#34;是一个UILabel。我在下面写的变量应该可以帮助您轻松地进行转换并使用更清晰的语法。 &#34; NEWVALUE&#34;附带所有setter方法。它基本上考虑了可能用于设置&#34; num&#34;的任何值。一个新的价值。

 var num : Int {
     get { 
         return Int(something!)!
     }
     set {
         something.text = Int(newValue)
     }

 }

答案 5 :(得分:0)

对于Swift 3,你可以做的是直接将它从String输入转换为整数,就像这样

Int(input.text!)

然后,如果出于任何原因,如果您希望将其打印出来或再次作为字符串返回,则可以

String(Int(input.text!)!)

感叹号表示它是可选的。