получение ошибки Бинарный оператор '==' нельзя применить к операндам типа '(UIControl.State) -> UIImage?'и "UIImage?" - PullRequest
0 голосов
/ 20 декабря 2018
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 голосов
/ 20 декабря 2018

Если 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)
0 голосов
/ 20 декабря 2018

Если вы хотите сравнить текущее изображение кнопки с изображением активов, используйте свойство currentImage , как показано ниже.

let isMute = buttonMute.currentImage == UIImage(named: "mute")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...