IOS / Swift: проверить изображение кнопки для переключения изображения кнопки - PullRequest
0 голосов
/ 17 сентября 2018

Я только изучаю Swift и пытаюсь переключать кнопки в зависимости от действий пользователя между двумя изображениями.Было бы неплохо просто проверить название отображаемых изображений и переключиться на другое.

Я могу получить изображение с кнопки, но не обязательно его имя.Мой вопрос, как сравнить его с именем изображения в Swift.

func toggleImage(){
    var img = self.sendButton.image(for: .normal)//NO ERROR
    if img.isEqual(image-one) {
        //ERROR HERE
        //switch to image-two
    } else {
        //switch to image-one
    }
}

Заранее благодарим за любые предложения.

Ответы [ 3 ]

0 голосов
/ 17 сентября 2018
  1. Использование ===

    private let image-one = UIImage(named: "name1") private let image-two = UIImage(named: "name2") override func viewDidLoad() { sendButton.setImage(image-one, for: .normal) }<br> func toggle image() { if self.sendButton.currentImage === image-one { ..... } }

  2. Использование флагов (менее элегантно, но гораздо безопаснее):

    enum WhichImage { case image-one, image-two } private var whichImage: WhichImage = .image-one

Вместо проверки изображений вы проверяете whichImage и обновляете его при изменении изображения.

0 голосов
/ 17 сентября 2018

Есть лучший способ.Относитесь к кнопке как к флажку.Непроверенное состояние - это изображение 1, проверенное состояние - это изображение 2.

Чтобы установить UIButton для работы в качестве флажка, используйте свойство isSelected.

sendButton.setImage(UIImage(named: "image1"), for: .normal)
sendButton.setImage(UIImage(named: "image2"), for: .selected)

// You may also need to set the image for the highlighted selected state.
sendButton.setImage(UIImage(named: "image2"), for: [.selected, .highlighted])

Теперь, когдакнопка знает об обоих изображениях, вы можете переключаться между, используя свойство isSelected.

func toggleImage() {
    sendButton.isSelected = !sendButton.isSelected
}
0 голосов
/ 17 сентября 2018

Вам необходимо получить имя изображения и сравнить его, как показано ниже

  if self.sendButton.currentImage == UIImage(named: "image-one") {
           //switch to image-two
            }else {
    //switch to image-one
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...