Анимировать изменение цвета обводки в UIView
-
06-07-2019 - |
Вопрос
Я бы хотел "пульсировать" цвет обводки на пути, который я нарисовал в drawRect из UIView. Но не уверен, что это возможно? Р>
- (void)highlightView {
if (!isHighlighted) {
[UIView beginAnimations:NULL context:nil];
[UIView setAnimationDuration:0.75];
self.strokeColor = kHighlightColor;
self.strokeWidth = 2.0;
[UIView commitAnimations];
self.isHighlighted = YES;
}
}
Я вижу изменения только в том случае, если я настроил представление в представлении. Но это обходит анимацию. Я могу придумать несколько обходных путей, если это невозможно, например, наложить другое полупрозрачное представление на нужный цвет и просто добавить его ... но по какой-то причине я думал, что анимировать свойства цвета было возможно в какао?!? Возможно, я ошибаюсь. Надеюсь, кто-то из вас сможет меня поправить.
Решение
Вы абсолютно можете анимировать свойства цвета с помощью UIView, но это не имеет смысла в контексте, с которым вы сейчас работаете.
В drawRect:
вы, по сути, рисуете цвет, когда обводите контур, эти биты просто перетаскиваются на экран. В этот момент цвет на самом деле не является свойством вида, а является частью картины.
Я написал UIView, который пульсировал этим летом (эмулируя строку состояния «В вызове»), создав два стека UIViews друг над другом и анимировав оба их свойства color
.