Chr*_*bst 2 radio-group radio-button ios swift xcode8
我搜索了各种来源,但找不到一个清晰而简单的解决方案来为 iOS 应用程序使用 Xcode 8.3 在 Swift 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
}
Run Code Online (Sandbox Code Playgroud)
不过,我希望有一种更有效的方法来做到这一点。
任何有关更有效解决方案的帮助将不胜感激。
您可以将所有按钮连接IBAction到一种方法。
@IBAction func buttonClick(_ sender: UISwitch) { // you're using UISwitch I believe?
}
Run Code Online (Sandbox Code Playgroud)
您应该将所有按钮添加到一个数组中:
// at class level
var buttons: [UISwitch]!
// in viewDidLoad
buttons = [buttonA, buttonB, buttonC]
Run Code Online (Sandbox Code Playgroud)
然后,写出buttonClick这样的方法:
buttons.forEach { $0.isChecked = false } // uncheck everything
sender.isChecked = true // check the button that is clicked on
Run Code Online (Sandbox Code Playgroud)
备择方案:
尝试使用UITableView. 每一行包含一个选项。选择一行后,将该行更改accessoryType为.checkMark,并将所有其他行更改为.none。
如果你太懒了,可以尝试搜索一下cocoapods.org,看看其他人做了什么。
| 归档时间: |
|
| 查看次数: |
12093 次 |
| 最近记录: |