选择/取消选择swift xcode 7按钮

时间:2015-11-24 23:48:20

标签: ios swift uibutton swift2 xcode7

部分方式完成了学习快速,但我打了一个小墙又一次,我相信我只是有点新的,一个简单的解决方案,但我无法弄清楚如何选择/取消选择下面的按钮是我到目前为止所有按钮在点击时变成一个复选标记...我已经到了那么远但我需要该按钮取消选择再次点击然后显然可以再次点击如果需要的话。

@IBAction func buttonPressed(sender: AnyObject) {
    sender.setImage(UIImage(named: "Checkmark.png"), forState: .Normal)
}

7 个答案:

答案 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
    
}