2009-10-23 4 views
1

Я хотел бы «пульсировать» цвет штриха по пути, который я нарисовал в drawRect UIView. Но не уверен, что это возможно?Анимировать изменение цвета штриха на 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 на вид. Но это обходит анимацию. Я могу придумать несколько обходных решений, если это невозможно, например, наложить еще один полупрозрачный вид с правильным цветом и просто выцветать в нем ... но по какой-то причине я думал, что анимационные цветовые свойства : возможно в Cocoa?!? Возможно, я ошибаюсь. Надеюсь, кто-то из вас может установить меня прямо.

ответ

1

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

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

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

+0

спасибо! фигурировал так много ... – Meltemi

Смежные вопросы