部分方式完成了学习快速,但我打了一个小墙又一次,我相信我只是有点新的,一个简单的解决方案,但我无法弄清楚如何选择/取消选择下面的按钮是我到目前为止所有按钮在点击时变成一个复选标记...我已经到了那么远但我需要该按钮取消选择再次点击然后显然可以再次点击如果需要的话。
@IBAction func buttonPressed(sender: AnyObject) {
sender.setImage(UIImage(named: "Checkmark.png"), forState: .Normal)
}
答案 0 :(得分:7)
Swift 3注意:.selected
和.checked
现在是SDK中的小写UIControlState
值,并且某些方法已重命名:
let button = UIButton()
button.setImage(UIImage(named: "Unchecked"), for: .normal)
button.setImage(UIImage(named: "Checked"), for: .selected)
现在,您还可以将图像文字与Xcode 8一起使用,而不是UIImage(named:)
:
#imageLiteral(resourceName: "Unchecked")
斯威夫特2:
为什么不将按钮的.Selected
状态用作“已检查”状态,将.Normal
状态用作“未选中”状态。
let button = UIButton()
button.setImage(UIImage(named: "Unchecked"), forState: .Normal)
button.setImage(UIImage(named: "Checked"), forState: .Selected)
// ...
@IBAction func buttonPressed(sender: AnyObject) {
if let button = sender as? UIButton {
if button.selected {
// set deselected
button.selected = false
} else {
// set selected
button.selected = true
}
}
}
答案 1 :(得分:2)
您无需在条件中设置选中状态。我只是在swift中使用以下方法:
func selectDeselect(sender: UIButton){
sender.selected = !sender.selected
if(sender.selected == true)
{
sender.setImage(UIImage(named:"select_heart"), forState: UIControlState.Normal)
}
else
{
sender.setImage(UIImage(named:"heart"), forState: UIControlState.Normal)
}
}
答案 2 :(得分:2)
Swift 4+的更新:
sed -E '/^Devices/{N;s/^\S+\s+(.*\n)\w+_[0-9]+_[0-9]+(_[0-9]+)?\([A-Z]{3}\) - [0-9]+\s+/\1/};P;D' file
答案 3 :(得分:1)
这是Swift 4的工作代码。
确保您需要将按钮IBAction
的插座连接为UIButton
,并根据需要从情节提要中设置默认按钮图像。
@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)
}
}
答案 4 :(得分:0)
在情节提要的默认状态下取消选中图像,并在情节提要的所选状态下选中图像。
@IBAction func buttonPressed(sender: AnyObject) {
buttonOutlet.isSelected = !buttonOutlet.isSelected
}
答案 5 :(得分:0)
private(set) lazy var myButton: UIButton = {
let button = UIButton()
button.setImage(UIImage(named: "Unchecked"), for: .normal)
button.setImage(UIImage(named: "Checked"), for: .selected)
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
button.translatesAutoresizingMaskIntoConstraints = false
return button
}()
@objc
func buttonTapped(sender: AnyObject) {
sender.isSelected.toggle()
}
答案 6 :(得分:0)
从三个按钮中只选择被按下的按钮,当指定的按钮被按下时取消选择其他按钮。
@IBAction func buttonPressed(_ sender: UIButton) {
// Deselect all buttons
button1.isSelected = false
button2.isSelected = false
button3.isSelected = false
// Select the pressed button
sender.isSelected = true
}