嗨,我需要像我的项目中的单选按钮 Radio Button Image 我将图像放入按钮,选择Booth,然后将其清空。 我如何处理这些被选中的另一个未被选中。 我们的选择只有一次。
@IBOutlet var nothisonlybtn: UIButton!
@IBOutlet var biweeklybtn: UIButton!
@IBOutlet var weeklybtn: UIButton!
如何使用按钮插座来处理
答案 0 :(得分:0)
在这种情况下,您发布的图像显示表格视图会很好。
如果是,请使用tableView tableView: didSelectItemAt indexPath:
和tableView tableView: didDeselectItemAt indexPath:
方法。
func tableView(_ tableView: UITableView, didSelectItemAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath) as! <#UITableViewCellClass#>
cell.rImageBtn.setImage(<#selected image#>, for: .normal)
}
func tableView(_ tableView: UITableView, didDeselectItemAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath) as! <#UITableViewCellClass#>
cell.rImageBtn.setImage(<#unselected image#>, for: .normal)
}
如果图像是UIView中的单个实体,则:
@IBOutlet weak var rImageBtn1: UIButton!
@IBOutlet weak var rImageBtn2: UIButton!
@IBOutlet weak var rImageBtn3: UIButton!
@objc func button1Tapped() {
rImageBtn1.setImage(<#selected image#>, for: .normal)
rImageBtn2.setImage(<#unselected image#>, for: .normal)
rImageBtn3.setImage(<#unselected image#>, for: .normal)
}
@objc func button2Tapped() {
rImageBtn1.setImage(<#unselected image#>, for: .normal)
rImageBtn2.setImage(<#selected image#>, for: .normal)
rImageBtn3.setImage(<#unselected image#>, for: .normal)
}
@objc func button3Tapped() {
rImageBtn1.setImage(<#unselected image#>, for: .normal)
rImageBtn2.setImage(<#unselected image#>, for: .normal)
rImageBtn3.setImage(<#selected image#>, for: .normal)
}
希望这可以解决您的问题。
答案 1 :(得分:0)
我们为所有按钮提供一个通用操作,并为这些标签提供0,1,2。
尝试使用此代码。
@IBAction func radioButtonAction(_ sender: UIButton) {
weeklybtn.setImage(UIImage(named: "Radio Button"), for: .normal)
biweeklybtn.setImage(UIImage(named: "Radio Button"), for: .normal)
nothisonlybtn.setImage(UIImage(named: "Radio Button"), for: .normal)
weeklylbl.textColor = UIColor(red: 92/255, green: 112/255, blue: 139/255, alpha: 1.0)
biweeklylbl.textColor = UIColor(red: 92/225, green: 112/255, blue: 139/255, alpha: 1.0)
onlyForthisLbl.textColor = UIColor(red: 92/225, green: 112/255, blue: 139/255, alpha: 1.0)
if sender.tag == 0
{
weeklybtn.setImage(UIImage(named: "Checked"), for: .normal)
weeklylbl.textColor = UIColor(red: 46/225, green: 125/255, blue: 225/255, alpha: 1.0)
}
else if sender.tag == 1
{
biweeklybtn.setImage(UIImage(named: "Checked"), for: .normal)
biweeklylbl.textColor = UIColor(red: 46/225, green: 125/255, blue: 225/255, alpha: 1.0)
}
else
{
nothisonlybtn.setImage(UIImage(named: "Checked"), for: .normal)
onlyForthisLbl.textColor = UIColor(red: 46/225, green: 125/255, blue: 225/255, alpha: 1.0)
}
}
答案 2 :(得分:0)
给所有按钮一个通用的IBOutlet
和IBAction
,并给这些标签加上0,1,2。
通用IBOutlet
@IBOutlet var radioButtons: [UIButton]!
通用IBAction
@IBAction func radioButtonTapped(_ sender: UIButton) {
for button in radioButtons {
if button.tag == sender.tag {
button.setImage(UIImage(named: "Checked"), for: .normal)
button.titleLabel!.textColor = UIColor(red: 46/225, green: 125/255, blue: 225/255, alpha: 1.0)
}else{
button.setImage(UIImage(named: "Radio Button"), for: .normal)
button.titleLabel!.textColor = UIColor(red: 92/255, green: 112/255, blue: 139/255, alpha: 1.0)
}
}
}