0
有沒有辦法改變UIView的foregroundColor?更改UIView的foregroundColor
我創建了一個使用UIView(drawRect)的箭頭,就像這個「>」,背景清晰,只有兩條黑線。這很好。但之後我想將「>」的顏色從黑色更改爲紅色。使用CAKeyframeAnimation可以很好地使用動畫,例如從黑色到紅色的漸變。我可以做borderColor和backgroundColor,但這些屬性不是我正在尋找的。
我使用這個動畫塊更改另一個UIView的borderColor。我想對foregroundColor做同樣的事情,但它不適用於iOS。
CAKeyframeAnimation* colorAnim = [CAKeyframeAnimation animationWithKeyPath:@"borderColor"];
NSArray* colorValues = [NSArray arrayWithObjects:(id)[UIColor blackColor].CGColor,(id)[UIColor redColor].CGColor, nil];
colorAnim.values = colorValues;
colorAnim.calculationMode = kCAAnimationPaced;
colorAnim.duration = 5.0;
colorAnim.repeatCount = 1;
[self.myView.layer addAnimation:colorAnim forKey:@"borderColor"];
我感謝任何幫助,謝謝!
嗨,首先,非常感謝你的答案。我做了你所建議的一切,新的屬性工作得很好,但動畫並沒有改變子視圖的顏色。我打電話是這樣的: 'CAKeyframeAnimation * colorAnim2 = [CAKeyframeAnimation animationWithKeyPath:@ 「foregroundColor」];'' = colorAnim2.values colorValues;'' = colorAnim2.calculationMode kCAAnimationPaced;'' = colorAnim2.duration 5.0 ;' 'colorAnim2.repeatCount = 1;' '[self.balloonTriangleBorder.layer addAnimation:colorAnim forKey:@「foregroundColor」];' – Fabio
要讓自定義屬性具有動畫效果,您必須在'CALayer '子類和[重寫'needsDisplayForKey:'](http://stackoverflow.com/questions/14192816/create-a-custom-animatable-property)。 – neilco
好的,我會試試。不管怎樣,謝謝! – Fabio