【发布时间】:2015-03-27 16:41:34
【问题描述】:
我有一个问题,有大量按钮以数字作为标签,所以我认为我可以将标签作为整数而不是为每个按钮创建一个动作?!
@IBAction func NumberInput(sender: UIButton) {
var input:Int = sender.titleLabel as Int
}
【问题讨论】:
标签: ios swift uibutton xcode6 uilabel
我有一个问题,有大量按钮以数字作为标签,所以我认为我可以将标签作为整数而不是为每个按钮创建一个动作?!
@IBAction func NumberInput(sender: UIButton) {
var input:Int = sender.titleLabel as Int
}
【问题讨论】:
标签: ios swift uibutton xcode6 uilabel
如果您想这样做,您可以使用string.toInt() 将string 转换为Int,例如:
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 属性来完成此操作,以防您更改标签的显示。
【讨论】:
var input = sender.titleLabel?.text?.toInt() xcode 告诉我这样做,但这给了我一个 Int?
你应该确保文本存在
var input:Int = (sender.titleLabel.text! as NSString).integerValue
【讨论】:
您不能将 UILabel 转换为 Int。我想你想要这个:
var input : Int? = sender.titleLabel.text?.toInt()
【讨论】:
另一种快速转换标签的方法:
let num = getIntFromLabel(labelView)
【讨论】:
将所有按钮连接到 1 个 IBAction。然后根据您将如何使用它来创建以下变量和 set/get 方法。
注意:“某物”是一个 UILabel。我在下面写的变量应该可以帮助您轻松地进行转换,并且语法更简洁。 “newValue” 带有所有的 setter 方法。它基本上考虑了任何可能用于将“num”设置为新值的值。
var num : Int {
get {
return Int(something!)!
}
set {
something.text = Int(newValue)
}
}
【讨论】:
对于 Swift 3,你可以做的是直接将它从字符串输入转换为整数,像这样
Int(input.text!)
然后,如果出于任何原因,如果您希望将其打印出来或再次作为字符串返回,您可以这样做
String(Int(input.text!)!)
感叹号表示是可选的。
【讨论】: