Вопрос

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top