2009-10-23 67 views
1

我想在我绘制在UIView的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; 
    } 
} 

我只能够看到更改,如果我在视图上setNeedsDisplay。但是这绕过了动画。我可以想到一些解决方法,如果这是不可能的,就像用适当的颜色叠加另一个半透明视图并将其淡入...但由于某种原因,我认为动画颜色属性可能在Cocoa?!?也许我错了。希望你们中的一个能够让我直率。

回答

1

你绝对可以用UIView设置动画的颜色属性,但是在你现在处理的上下文中它没有任何意义。

drawRect:你本质上是绘画一个颜色,当你笔画一个路径,这些位只是blitted到屏幕上。在那一点上,这幅画的颜色并不完全属于这幅画的一部分。

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

+0

谢谢!想到尽可能多的... – Meltemi 2009-10-23 17:55:25