出於某種原因,當我嘗試對textColor進行動畫處理時,它不起作用。 textColor突然從A變爲B.是否可以對它進行動畫處理,從讓我們說紅到黑?如何動畫UILabel的textColor屬性?
回答
的textColour屬性沒有被指定爲在文檔animateable,所以我不認爲你可以用一個簡單的UIView動畫塊做...
這也許可以很粗略地與NSTimer
完成每隔幾毫秒發射一次,每次將顏色從一個顏色逐漸設置到另一個顏色。
我說這很粗魯,因爲它需要一個數組或其他容器的預設顏色值從開始顏色到結束顏色,我敢肯定有一種方法可以使用核心動畫或其他,我只是不知道它是什麼。
您可以嘗試創建UILabel的另一個實例或任何具有textColor的實例,然後在這兩個實例之間應用動畫(使用舊的textColor和使用新的textColor的動畫)。
我發現了一個簡易的開源替代品的UILabel將UIView放置在標籤下方並將其不透明度設置爲動畫效果非常簡單。 標籤必須添加到該視圖。 從資源消耗的角度來看,也許不是一個好的解決方案,但非常簡單。
相反,你有沒有嘗試過使用對象本身這樣的淡入淡出過渡,它會給你從一個顏色一個漂亮的淡入淡出效果,另:
[UIView transitionWithView:myLabel duration:0.25 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
myLabel.textColor = NEW_COLOR;
} completion:^(BOOL finished) {
}];
這是更好比由於各種原因使用NSTimers,CATextLayers等等。 CATextLayer對文本字距或NSAttributedText沒有適當的支持,而NSTimers是滯後的(加上代碼太多)。上面的過渡動畫可以做到這一點,也可以用於鏈式動畫。我有同樣的問題,並已經嘗試了上述解決方案,但這個簡單的代碼可以創造奇蹟。
不錯,優雅,實際上是最好和最乾淨的解決方案。 – maksa 2014-05-13 10:04:53
太好了。在Swift中工作方式與此相同:'UIView.transitionWithView(creditsLabel,duration:0.3,options:.TransitionCrossDissolve,animations:{self.creditsLabel.textColor = UIColor.redColor()},completion:nil)' – SimplGy 2015-08-20 13:40:14
太棒了!謝謝。簡單! – Itzdsp 2016-08-27 18:27:47
這裏是我的代碼來動畫標籤文本顏色。所述重要的部分是動畫之前文字顏色設置爲clearColor
label.textColor = [UIColor clearColor];
[UIView transitionWithView:label duration:duration/4 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
label.textColor = self.highlightedCellPrimaryTextColor;
} completion:^(BOOL finished) { }];
夫特4溶液:
UIView.transition(with: yourLabel, duration: 0.3, options: .transitionCrossDissolve, animations: {
self.yourLabel.textColor = .red
}, completion: nil)
更新迅速3。0
我剛從@budidino評論
UIView.transition(with: my.label, duration: 0.3, options: .transitionCrossDissolve, animations: { my.label.textColor = .black }, completion: nil)
- 1. 如何動畫UILabel的textColor?
- 2. 如何使用KVC設置像textcolor,font等UILabel屬性?
- 3. 如何動畫IsChecked屬性?
- 4. android:set textColor with textAppearance屬性
- 5. UILabel TextColor不會更改iphone
- 6. 動畫效果的UILabel文本屬性與插補
- 7. iPhone UILabel動畫
- 8. 如何動畫視圖的屬性
- 9. 如何動畫ViewGroups的佈局屬性?
- 10. 如何動畫倒塌的屬性?
- 11. 如何動畫UILabel的背景顏色?
- 12. 如何動畫UILabel的目標C
- 13. 如何動畫循環jQuery動畫中的CSS「剪輯」屬性?
- 14. 如何在android 2.1中設置按鈕的「textColor」屬性?
- 15. android動畫屬性
- 16. 如何將UILabel的textColor與其背景相匹配?
- 17. 如何動畫附加屬性?
- 18. 如何綁定屬性動畫值?
- 19. 如何在Silverlight中動畫zIndex屬性?
- 20. 如何鏈視圖屬性動畫
- 21. 如何動畫非圖層屬性?
- 22. UILabel動畫文字
- 23. 動畫增量UILabel
- 24. UILabel左右動畫
- 25. 顯示UILabel動畫
- 26. 動畫脈衝UILabel?
- 27. UILabel屬性轉儲
- 28. 的jQuery - 動畫()的屬性
- 29. 動畫CALayer的shadowPath屬性
- 30. JQuery的動畫屬性?
或改變:即拋出與A和B以及一個給定的百分比之間的RGB值的數組的函數。儘管對顏色算法一無所知。 – dontWatchMyProfile 2010-03-11 17:42:13
這裏有很好的解決方法: [here](http://stackoverflow.com/questions/6442774/is-uilabels-backgroundcolor-not-animatable/6442868#6442868) and [here](http://stackoverflow.com/a/3947389/1076848) 感謝Anna Karenina – jackal 2012-08-24 21:19:12
您應該使用'CADisplayLink'而不是'NSTimer'手動驅動動畫,因爲它與顯示更新同步。請參閱[WWDC 2014會話236:構建可中斷和響應式交互](https://developer.apple.com/videos/play/wwdc2014-236/),大約在13:00。 – 2016-01-08 13:22:20