在UIView上设置笔触颜色的更改动画

时间:2009-10-23 16:43:55

标签: cocoa-touch uiview core-animation

我想在我在UIView的drawRect中绘制的路径上“脉动”笔触颜色。但不确定这是可能的吗?

- (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;
    }
}

如果我在视图上设置了NeedNeisDisplay,我只能看到更改。但那绕过了动画。我可以想到一些解决方法,如果这是不可能的,比如用适当的颜色覆盖另一个半透明视图并且只是将其淡化......但出于某种原因,我认为动画颜色属性可能的在可可?!?也许我错了。希望你们中的一个能够让我直截了当。

1 个答案:

答案 0 :(得分:1)

你绝对可以使用UIView为颜色属性设置动画,但它在你正在处理的上下文中并没有意义。

drawRect:中,当你描绘一条路径时,你基本上是绘制一种颜色,这些位只会在屏幕上显示。在这一点上,颜色实际上不是视图的属性,而是绘画的一部分。

我写了一个UIView,它在今年夏天发出了脉冲(模仿“In Call”状态栏),通过在彼此顶部创建两个UIViews堆栈,并为它们的color属性设置动画。