【发布时间】:2018-10-08 15:41:54
【问题描述】:
我在 UiKit 中使用 UIButtons 制作了一系列复选框:
@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 个按钮。
有没有更快的方法通过制作一组按钮来做到这一点?或类似的东西?
【问题讨论】:
-
您可以制作表格视图或集合视图,然后将单元格设置为您想要的按钮样式吗?
-
如果你真的需要在一个数组中有很多按钮,你可以在代码中循环创建这些按钮。我还建议使用 UITableView 或 UICollectionView
-
这是个好主意。集合视图中的每个单元格可以移动到视图中的随机位置吗?单元格也可以像按钮一样操作吗?