2009-10-23 69 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