Ios 在swift中按下按钮时填充按钮图标

Ios 在swift中按下按钮时填充按钮图标,ios,swift,Ios,Swift,我有一个按钮图标,我想当按下按钮图标填充颜色,当再次按下空颜色,并返回到以前的状态 注意:我不想在每次按下按钮后都更改图标。您可以调用setImage(\uu:for:)方法为特定状态设置按钮的图像 当用户未按下按钮时,该按钮处于normal状态,因此您应该执行以下操作: yourButton.setImage(hollowHeart, for: .normal) yourButton.setImage(filledHeart, for: .highlighted) 当用户触摸按钮时,按钮

我有一个按钮图标,我想当按下按钮图标填充颜色,当再次按下空颜色,并返回到以前的状态


注意:我不想在每次按下按钮后都更改图标。

您可以调用
setImage(\uu:for:)
方法为特定状态设置按钮的图像

当用户未按下按钮时,该按钮处于
normal
状态,因此您应该执行以下操作:

yourButton.setImage(hollowHeart, for: .normal)
yourButton.setImage(filledHeart, for: .highlighted)
当用户触摸按钮时,按钮处于突出显示的状态,因此您应该执行以下操作:

yourButton.setImage(hollowHeart, for: .normal)
yourButton.setImage(filledHeart, for: .highlighted)

您只需在创建按钮后执行一次,可能在
viewDidLoad

中,您可以调用
setImage(u:for:)
方法为特定状态设置按钮的图像

当用户未按下按钮时,该按钮处于
normal
状态,因此您应该执行以下操作:

yourButton.setImage(hollowHeart, for: .normal)
yourButton.setImage(filledHeart, for: .highlighted)
当用户触摸按钮时,按钮处于突出显示的状态,因此您应该执行以下操作:

yourButton.setImage(hollowHeart, for: .normal)
yourButton.setImage(filledHeart, for: .highlighted)

您只需在创建按钮后执行一次,可能是在
viewDidLoad

中。下面是如何实现此目的的示例,如果您不了解某些内容,请告诉我

class ViewController: UIViewController {

    @IBOutlet weak var someBtn: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        configureUI()
    }

    //Setting up images for normal and selected state.
    func configureUI() {
        let image = UIImage(named: "image")
        let imageFilled = UIImage(named: "image-filled")
        someBtn.setImage(image, for: .normal)
        someBtn.setImage(imageFilled, for: .selected)
    }

    @IBAction func someBtnPressed(_ sender: Any) {
        // Toggle basically makes someBtn’s selected state either true or false when pressed
        someBtn.isSelected.toggle()
    }
}

这里是一个例子,你可以如何做到这一点,让我知道,如果你不明白的东西

class ViewController: UIViewController {

    @IBOutlet weak var someBtn: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        configureUI()
    }

    //Setting up images for normal and selected state.
    func configureUI() {
        let image = UIImage(named: "image")
        let imageFilled = UIImage(named: "image-filled")
        someBtn.setImage(image, for: .normal)
        someBtn.setImage(imageFilled, for: .selected)
    }

    @IBAction func someBtnPressed(_ sender: Any) {
        // Toggle basically makes someBtn’s selected state either true or false when pressed
        someBtn.isSelected.toggle()
    }
}

你可以看到这个@MdRashedPervez我不想改变按钮的背景色!!!我想要填充按钮图标颜色你可以看到这个@MdRashedPervez我不想要改变按钮背景颜色!!!我想要填充按钮图标颜色不适合我!在情节提要中创建按钮,但在viewDidLoad中设置正常状态。什么也没发生@GiaJoli您还需要为高亮显示状态设置填充图像。是你干的吗?是的!在viewDidLoad中,代码是:
LikeBtn.setImage(UIImage(名为:“Like”),用于:.normal)
,在button click中,代码是:
LikeBtn.setImage(UIImage(名为:“LikeFill”),用于:.highlighted)
@GiaJoli不,您不应该将其放在button click中。把第二行也放到
viewDidLoad
中。不要为我工作!在情节提要中创建按钮,但在viewDidLoad中设置正常状态。什么也没发生@GiaJoli您还需要为高亮显示状态设置填充图像。是你干的吗?是的!在viewDidLoad中,代码是:
LikeBtn.setImage(UIImage(名为:“Like”),用于:.normal)
,在button click中,代码是:
LikeBtn.setImage(UIImage(名为:“LikeFill”),用于:.highlighted)
@GiaJoli不,您不应该将其放在button click中。将第二行也放在
viewDidLoad
中。@GiaJoli Swift 4.2中的新功能:Swift 4中的
toggle()
不存在。但你的答案是完美的。谢谢你的
someBtn.isSelected=!someBtn.isSelected
如果不起作用,请尝试此选项,而不是
toggle()
。很高兴听到这有帮助;)@GiaJoli在Swift 4.2中的新功能:Swift 4中不存在
toggle()。但你的答案是完美的。谢谢你的
someBtn.isSelected=!someBtn.isSelected
如果不起作用,请尝试此选项,而不是
toggle()
。很高兴听到这有帮助;)