遇到错误二进制运算符'=='不能应用于类型为((UIControl.State)-> UIImage?和“ UIImage?”

时间:2018-12-20 11:43:17

标签: ios swift uiimage

let isMute = self.buttonMute.image == UIImage(named: "mute")
self.buttonMute.image = isMute ? UIImage(named: "volume") : UIImage(named: "mute")
self.baseViewModel.mute(!isMute)

print("button mute")

2 个答案:

答案 0 :(得分:2)

如果要将按钮当前图像与资产图像进行比较,则使用 currentImage 属性,如下所示。

let isMute = buttonMute.currentImage == UIImage(named: "mute")

答案 1 :(得分:1)

如果buttonMute的类型为UIButton(这是因为您在使用UIControl.state时遇到错误),则必须获取这样的当前图像

self.buttonMute.image(for: .normal)

然后,当您需要为按钮设置新图像时,必须使用图像作为参数调用setImage

let image = isMute ? UIImage(named: "volume") : UIImage(named: "mute")
self.buttonMute.setImage(image, for: .normal)