我有几个标题为0 - 9的按钮,在我的自定义UIButton类中,我希望能够使用开关来检查按钮标题。按钮在故事板中创建。 UIButton类看起来像:
protocol NumpadDelegate: class {
func changeValue()
}
class NumpadButton: UIButton, NumpadDelegate {
let initial = String() // I want to assign the title of the button here
var alternative = String()
var change: Bool = false {
didSet {
let title = change ? alternative : initial
setTitle(title, forState: .Normal)
}
}
func changeValue() {
change = !change
}
}
有没有办法做到这一点,或者我必须以编程方式创建按钮?我试图限制使用自定义UIButton类,因此我不必为每个按钮创建一个。
编辑:
根据要求,按下按钮的代码:
@IBAction func buttonNumber(sender: UIButton) {
let value = sender.titleLabel!.text!
switch value {
case "C": orderLabel.text = ""
default: orderLabel.text = orderLabel.text.map { count($0) < 10 ? $0 + value : $0 } ?? value
}
if let check = orderLabel.text {
inputResult.removeAll(keepCapacity: false)
for index in 0..<items.count {
let id = items[index].id
if id.lowercaseString.hasPrefix(check.lowercaseString) {
inputResult += [items[index]]
}
}
numpadTableView.reloadData()
}
}
我尝试做的是,当我滑动按钮时,我希望他们的标题更改为另一个String
,即标题为1的按钮将更改为A,标题为2的按钮将更改为乙
答案 0 :(得分:2)
而不是将按钮分配到参考插座&#39;在Interface Builder中,将它们分配给引用集合&#39;您可以声明为
@IBOutlet var buttons: [NumpadButton]
答案 1 :(得分:0)
不确切地知道你的目的是什么,但这里有一个例子,我为每个NumpadButton
创建了出口并将它们添加到array
。
class ViewController: UIViewController {
@IBOutlet weak var button1: NumpadButton!
@IBOutlet weak var button2: NumpadButton!
@IBOutlet weak var button3: NumpadButton!
@IBOutlet weak var button4: NumpadButton!
var array: NSMutableArray = []
override func viewDidLoad() {
super.viewDidLoad()
array.addObject(button1)
array.addObject(button2)
array.addObject(button3)
array.addObject(button4)
}
每个按钮的标题为“1”,“2”,“3”或“4”。然后你可以通过案例陈述检查标题,如下所示:
override func viewWillAppear(animated: Bool) {
for item in array {
var button = item as! UIButton
switch button.currentTitle! {
case "1":
println("This button has title of 1")
case "2":
println("This button has title of 2")
case "3":
println("This button has title of 3")
case "4":
println("This button has title of 4")
default:
println("default case")
}
}
}
}
这将是您使用案例陈述访问UIButtons
标题然后只需将应用程序调整为您想要的任何功能(例如通过IBAction
等)的一种方式。