Я сделал ряд флажков в UiKit с помощью кнопок UIB:
@IBOutlet weak var Box1: UIButton!
@IBOutlet weak var Box2: UIButton!
@IBOutlet weak var Box3: UIButton!
....
@IBOutlet weak var Box59: UIButton!
// Gives the button an action
@IBAction func Box1(_ sender: UIButton) {
sender.isSelected = !sender.isSelected
}
@IBAction func Box2(_ sender: UIButton) {
sender.isSelected = !sender.isSelected
}
@IBAction func Box3(_ sender: UIButton) {
sender.isSelected = !sender.isSelected
}
....
@IBAction func Box59(_ sender: UIButton) {
sender.isSelected = !sender.isSelected
}
// Creates button images of checkbox and unchecked box
var BoxON = UIImage(named: "CheckBox")
var BoxOFF = UIImage(named:"UnCheckBox")
// Allows the button to be set to the image, if selected or not
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
Box1.setImage(BoxOFF, for: .normal)
Box1.setImage(BoxON, for: .selected)
Box2.setImage(BoxOFF, for: .normal)
Box2.setImage(BoxON, for: .selected)
Box3.setImage(BoxOFF, for: .normal)
Box3.setImage(BoxON, for: .selected)
....
Box59.setImage(BoxOFF, for: .normal)
Box59.setImage(BoxON, for: .selected)
}
Это весь код, необходимый для установки максимально возможного количества флажков. Однако каждый флажок требует создания / перемещения кнопки в нужное место на раскадровке, связывая кнопку от раскадровки с только что закодированной переменной кнопки. Это может занять много времени, так как мне нужно более 100 кнопок на контроллер представления.
Есть ли более быстрый способ сделать это, создав массив кнопок? или что-то подобное?