Что на самом деле оживляемо в UILabel? - PullRequest
5 голосов
/ 25 октября 2010

Я пытаюсь анимировать backgroundColor свойство класса UILabel и пока что безуспешно.Вот фрагмент моего кода

-(void) blink {
  UIColor* originalColor = lblDescription.backgroundColor;
  lblDescription.backgroundColor = [UIColor yellowColor];

  [UIView beginAnimations:nil context:NULL];
  [UIView setAnimationDuration:1.0];
  lblDescription.backgroundColor = originalColor;
  [UIView commitAnimations];
}
//this code works if lblDescription is UIView and does not if UILabel

Я обнаружил некоторые утверждения, что некоторые свойства UILabel не являются анимируемыми, но я не смог обосновать это утверждение, прочитав документы Apple.Мне было интересно, если кто-то может пролить свет на эту проблему.

Ответы [ 2 ]

4 голосов
/ 26 октября 2010

Вкл. эта страница из Руководства по программированию View. Для iOS в «Таблица 1-2 Свойства Animatable» предположительно перечислены все анимируемые свойства UIViews.Он не включает backgroundColor.

Но в справочнике классов UIView в свойстве backgroundColor указано:

Обсуждение
Изменения в этом свойствеможно анимировать.По умолчанию nil.

Так что неясно, почему backgroundColor UILabel не анимируется.

Обходной путь, который я использовал в прошлом, - это использование CATextLayer вместо UILabel.

0 голосов
/ 07 мая 2014

Если вы хотите анимировать цвет метки (включая фон), вы можете сделать что-то вроде этого:

https://stackoverflow.com/a/20892927/189924

Это не включает слои или использование несколькихвид.

...