UIView.animate не анимация

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

var suffix = " name";

var person = {
    ["first" + suffix]: "Nicholas",
    ["last" + suffix]: "Zakas"
};

console.log(person["first name"]);      // "Nicholas"
console.log(person["last name"]);       // "Zakas"

Это называется именами вычисленных свойств

2
задан Matthew Kim 24 March 2019 в 07:08
поделиться

3 ответа

Свойство textColor не указано как анимируемое в документах Apple для разработчиков, поэтому я не думаю, что вы можете сделать это с помощью простого блока UIView animations.

Вместо этого можно использовать UIView transition.

Код:

UIView.transition(with: self.titleLabel, duration: 1.0, options: .transitionCrossDissolve, animations: {
            self.titleLabel.textColor = UIColor(red: 104/250, green: 155/250, blue: 121/250, alpha: 1)
        }, completion: { _ in
            self.titleLabel.textColor = UIColor(red:206/255, green: 206/255, blue: 206/255, alpha: 1.0)
        })

Надеюсь, это поможет вам. Дайте мне знать, если у вас все еще есть проблемы.

0
ответ дан Amir Khan 24 March 2019 в 07:08
поделиться

попробуйте

 UIView.animate(withDuration: 1.0, animations: {
        self.titleLabel.textColor = UIColor(red:206/255, green: 206/255, blue: 206/255, alpha: 1.0)
        self.view.layoutIfNeeded()
    }
0
ответ дан hammam abdulaziz 24 March 2019 в 07:08
поделиться

TextColor не должен быть анимируемым в документации, поэтому вы должны выполнить приведенный ниже анимационный код.

Причина :

Причина, по которой textColor не является анимируемым, заключается в том, что UILabel использует обычный CALayer вместо CATextLayer. поэтому у вас есть две опции

  1. выполнять анимацию на CATextLayer
  2. Добавить пользовательский слой анимации, как показано ниже в коде.
let changeColor = CATransition() 

changeColor.duration = 1

CATransaction.begin()

CATransaction.setCompletionBlock {
self.titleLabel.layer.add(changeColor, forKey: nil)
self.titleLabel.textColor = UIColor(red:206/255, green: 206/255, blue: 206/255, alpha: 1.0) }

titleLabel.textColor = UIColor(red: 104.0/255.0, green: 155.0/255.0, blue: 121.0/255.0, alpha: 1.0)

CATransaction.commit()
0
ответ дан Muhammad Waqas Bhati 24 March 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: