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

有帮助吗?

解决方案

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top