Анимировать изменение цвета обводки в UIView - PullRequest
1 голос
/ 23 октября 2009

Я бы хотел "пульсировать" цвет обводки на пути, который я нарисовал в 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;
    }
}

Я могу видеть изменения, только если я установилNeedsDisplay в представлении. Но это обходит анимацию. Я могу придумать несколько обходных путей, если это невозможно, например, наложить другой полупрозрачный вид на нужный цвет и просто добавить его ... но по какой-то причине я подумал, что анимировать свойства цвета было возможно Какао?!? Возможно, я ошибаюсь. Надеюсь, кто-то из вас сможет меня поправить.

1 Ответ

1 голос
/ 23 октября 2009

Вы абсолютно можете анимировать свойства цвета с помощью UIView, но это не имеет смысла в контексте, с которым вы сейчас работаете.

В drawRect: вы, по сути, рисуете цвет, когда вы обводите контур, эти биты просто перетаскиваются на экран. В этот момент цвет на самом деле не является свойством вида, а является частью картины.

Я написал UIView, который пульсирует этим летом (эмулируя строку состояния "В вызове"), создав два стека UIViews друг над другом и анимируя оба их свойства color.

...