我正在创建一个Swift iOS应用,其中必须显示一个接受水平和垂直方式的单选按钮。我在GitHub上找到了一个库,该库可以解决我的问题,但是它仅显示水平方式(并排方向),我需要垂直方式(即在另一个单选按钮下方显示一个单选按钮)。任何指导将不胜感激。预先谢谢你。
答案 0 :(得分:3)
我相信这里的代码解决方案更少!
@IBOutlet weak var btn1: UIButton!
@IBOutlet weak var btn2: UIButton!
.
.
.
.
@IBOutlet weak var btn10: UIButton!
var arrButtons:[UIButton] = []
override func viewDidLoad() {
super.viewDidLoad()
arrButtons.append(btn1)
arrButtons.append(btn2)
//so, on
}
转到按钮属性并为UIButton设置状态Config属性选择的图像,以便当isSelected属性为true时它将替换图像。
还使用“ btnRadioPrressed”方法将touchUpInside事件绑定到每个按钮。
@IBAction func btnRadioPrressed(sender: UIButton) {
for btn in arrButons {
btn.isSelected = false
}
if let index = arrButons.index(where: { $0 == sender }) {
arrButons[index].isSelected = true
}
}
希望这会帮助您减少代码。
答案 1 :(得分:0)
您已共享的链接可以创建垂直按钮,使用情况说明它在水平UIStackView
内使用它
答案 2 :(得分:0)
您可以在UIStackView中添加多个按钮,然后根据需要将UIStackView的axis属性设置为水平或垂直。要使单选按钮设置按钮的图像并提供标题,然后设置左标题插图以在按钮图像和标题之间留出一些空间。
答案 3 :(得分:0)
因为这个简单的事情不需要使用任何第三方库,您可以使用 UIButton
做到这一点。
import UIKit
class RootViewController: UIViewController {
@IBOutlet weak var btnMale: UIButton!
@IBOutlet weak var btnFemale: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func btnTapped(_ sender: UIButton) {
if sender.currentImage == UIImage(named: "radio_unchecked"){
sender.setImage(UIImage(named: "radio_checked"), for: .normal)
}else{
sender.setImage(UIImage(named: "radio_unchecked"), for: .normal)
}
}
在情节提要中拖放两个UIButton
,将其IBOutlet
连接到“两个按钮”,然后使用相同的动作插座将它们连接。
添加图像,并通过“在空间之前添加”来设置按钮标题的另一件事。
像这样在情节提要中更改路线。
这就是您的输出: