我搜索了各种来源,但找不到一个清晰而简单的解决方案来为 iOS 应用程序在 Swift 3 中使用 Xcode 8.3 创建等效的单选按钮组。
例如,如果我在一组中有 3 个按钮,并且一次只能选择一个。目前,我正在通过将组中 2 个按钮的状态更改为在另一个按钮被选中时未被选中来实现此目的,反之亦然。
@IBAction func buttonA(_ sender: Any) {
buttonB.isChecked = false
buttonC.isChecked = false
}
@IBAction func buttonB(_ sender: Any) {
buttonA.isChecked = false
buttonC.isChecked = false
}
@IBAction func buttonC(_ sender: Any) {
buttonA.isChecked = false
buttonB.isChecked = false
}
但是我希望有一种更有效的方法来做到这一点。
任何有关更有效解决方案的帮助将不胜感激。
最佳答案
您可以将所有按钮的 IBAction
连接到一个方法。
@IBAction func buttonClick(_ sender: UISwitch) { // you're using UISwitch I believe?
}
您应该将所有按钮添加到一个数组中:
// at class level
var buttons: [UISwitch]!
// in viewDidLoad
buttons = [buttonA, buttonB, buttonC]
然后,像这样编写 buttonClick
方法:
buttons.forEach { $0.isChecked = false } // uncheck everything
sender.isChecked = true // check the button that is clicked on
备选方案:
尝试使用 UITableView
。每行包含一个选项。选择一行后,将该行的 accessoryType
更改为 .checkMark
并将每隔一行的更改为 .none
。
如果你太懒了,试着在 cocoapods.org
上搜索一下,看看其他人做了什么。
关于ios - 单选按钮组 Swift 3 Xcode 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44839293/