Обновить заголовок кнопки - PullRequest
0 голосов
/ 08 мая 2019

У меня есть простая кнопка, которая изначально помечена эмодзи ?, и все, что я пытаюсь сделать, это удалить эмодзи после нажатия кнопки.

import UIKit

class ViewController: UIViewController {

    @IBAction func touchCard(_ sender: UIButton) {
        flipCard(withEmoji: "?", on: sender)
    }

    func flipCard(withEmoji emoji: String, on button:UIButton){
        if button.currentTitle == emoji {
            button.setTitle("", for: UIControl.State.normal)
            print("Removed emoji")
        }
    }

}

Когда я выполняю код, оператор button.setTitle("", for: UIControl.State.normal) выполняется, однако смайлики не исчезают, хотя и выглядят блеклыми после нажатия кнопки.

Редактировать: Заголовок обновляется, но для этого требуется несколько (8-10) секунд. Замена смайликов на другие смайлики почти мгновенна! Что может быть причиной этого и как я могу это исправить?

PS: я слежу за лекцией CS193P (лекция 1) здесь .

Ответы [ 3 ]

1 голос
/ 08 мая 2019

Вы, вероятно, хотите button.title(for: .normal) вместо button.currentTitle.

0 голосов
/ 09 мая 2019

Вы можете просто заменить свою функцию, как показано ниже, функцию, которую я добавил для вас.

func flipCard(withEmoji emoji: String, on button:UIButton){

        if button.currentTitle == emoji {

            button.setTitle("", for: .normal)
            button.setTitle("", for: .selected)
            button.setTitle("", for: .disabled)

            print("Removed emoji")
        }

    }

Надеюсь, что этот способ может помочь вам.

0 голосов
/ 08 мая 2019

Если кнопка кажется блеклой, она может быть отключена.Если вы установите заголовок для отключенного состояния и выполните button.setTitle("", for: UIControl.State.normal), с заголовком ничего не случится для UIControl.State.disabled.

Проверьте, справляется ли button.setTitle("", for: UIControl.State.disabled).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...