Z jakiegoś powodu, gdy próbuję animować textColor, to nie zadziała. Kolor tekstu nagle zmienia się z A na B. Czy można go ożywić, powiedzmy od czerwonego do czarnego?Jak animować właściwość textColor w UILabel?
Odpowiedz
Obiekt textColour nie jest określony jako animateable w docs, więc nie sądzę, można to zrobić za pomocą prostego UIView animacje bloku ...
Można to prawdopodobnie dość prymitywnie wykonane z NSTimer
strzelanie co kilka milisekund, za każdym razem ustawianie koloru stopniowo od jednego do drugiego.
Mówię, że jest to prymitywne, ponieważ wymagałoby tablicy lub innego pojemnika z ustawionymi wartościami kolorów, począwszy od koloru początkowego do koloru końcowego, i jestem pewien, że jest sposób, w jaki można to zrobić za pomocą animacji rdzenia lub czegoś podobnego. , Po prostu nie wiem, co to jest.
Możesz spróbować utworzyć kolejną instancję UILabel lub cokolwiek innego, co ma textColor, a następnie zastosować animację między tymi dwoma instancjami (ze starym textColor i tym z nowym textColor).
Powodem, dla którego funkcja textColor nie może być animowana, jest to, że UILabel używa zwykłej CALayer zamiast CATextLayer.
Aby uczynić textColor animatable (jak również tekst, czcionkę, itp.) Możemy podklasę UILabel, aby użyć CATextLayer.
To dość dużo pracy, ale na szczęście ja już to zrobił :-)
można znaleźć kompletne wyjaśnienie + spadek zamiennik open source dla UILabel w tym article
tak wygląda świetnie, bardzo dużo! – Nils
znalazłem to bardzo łatwe umieszczanie UIView pod etykietą i animowanie jej nieprzezroczystości. Etykieta musi zostać dodana do tego widoku. Może nie jest to dobre rozwiązanie z punktu widzenia zużycia zasobów, ale całkiem proste.
Zamiast masz spróbował wykorzystać Przenikanie przejście na obiekcie sama jak ta, będzie ona daje piękny Fade-in-out blaknięcie efekt z jednego koloru do drugiego:
[UIView transitionWithView:myLabel duration:0.25 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
myLabel.textColor = NEW_COLOR;
} completion:^(BOOL finished) {
}];
To jest lepsze niż używanie NSTimers, CATextLayers i tak dalej z różnych powodów. CATextLayer nie ma odpowiedniego wsparcia dla kerningu tekstowego lub NSAttributedText, a NSTimery są opóźnione (plus za dużo kodu). Powyższa animacja przejścia obsługuje sztuczkę, a także może być użyta w animacji łańcucha. Miałem ten sam problem i już wypróbowałem powyższe rozwiązania, ale ten prosty kod działa zamiast cudów.
Ładne, eleganckie, w rzeczywistości najlepsze i najczystsze rozwiązanie. – maksa
Świetnie. Pracuje w Swift tylko samo: 'UIView.transitionWithView (creditsLabel, czas trwania: 0,3, opcje: .TransitionCrossDissolve, animacje: {self.creditsLabel.textColor = UIColor.redColor()}, realizacja: zero)' – SimplGy
Great! dzięki. prosty! – Itzdsp
Oto mój kod do animowania koloru tekstu etykiety. ważnym elementem jest ustalenie textColor do clearColor przed animacją
label.textColor = [UIColor clearColor];
[UIView transitionWithView:label duration:duration/4 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
label.textColor = self.highlightedCellPrimaryTextColor;
} completion:^(BOOL finished) { }];
Swift 4 rozwiązanie:
UIView.transition(with: yourLabel, duration: 0.3, options: .transitionCrossDissolve, animations: {
self.yourLabel.textColor = .red
}, completion: nil)
aktualizowane Swift 3.0
prostu zmieniony z @budidino uwagi
UIView.transition(with: my.label, duration: 0.3, options: .transitionCrossDissolve, animations: { my.label.textColor = .black }, completion: nil)
- 1. Czy można ustawić właściwość `attributedText` obiektu` UILabel`
- 2. Jak mogę animować właściwość UIBUTton Alpha za pomocą MonoTouch
- 3. Jak animować właściwość css scale przy użyciu jquery?
- 4. Jak animować CSS Przetłumaczyć
- 5. Jak ustawić właściwość CGFloat dla właściwości tekstowej UILabel
- 6. Zmień textcolor z UIWebView
- 7. Jak ustawić funkcję TableSection TextColor Xamarin.Forms?
- 8. Animować rzeczy jak w jQuery?
- 9. Jak animować NSLayoutConstraint w Swift?
- 10. Zmiana rozmiaru UILabel w celu dopasowania tekstu
- 11. Jak animować tłumaczenie widoku
- 12. Jak animować wiersz poleceń?
- 13. Jak animować View.setVisibility (GONE)?
- 14. Jak animować działkę rozproszoną?
- 15. Jak animować punkt przewijania?
- 16. Jak animować bączek?
- 17. Jak animować UIBezierPath
- 18. matplotlib imshow(): jak animować?
- 19. Android -Jak animować viewPager
- 20. Jak animować "widoczność: ukryta"?
- 21. Dodawanie aplikacji TapGestureRecognizer do UILabel w Swift
- 22. Animacja UILabel nie gładka
- 23. ustawienie android: textColor za pomocą rysowania programowo?
- 24. UILabel negatywne odstępy między wierszami
- 25. Wyśrodkuj tekst w UILabel
- 26. Utwórz niestandardową animowalną właściwość
- 27. jak animować następujące myszy w jquery
- 28. Jak możesz animować duszka w SFML
- 29. Jak animować krycie w programie DropShadowEffect?
- 30. Jak animować w jQuery bez łączenia zwrotnego?
czyli funkcją wyrzuca tablicę wartości RGB pomiędzy A i B w określonej części. Nie wiem jednak nic o algorytmach kolorów. – dontWatchMyProfile
tutaj są dobre obejścia: [tutaj] (http://stackoverflow.com/questions/6442774/is-uilabels-backgroundcolor-not-animatable/6442868#6442868) i [tutaj] (http://stackoverflow.com/a/3947389/1076848) dzięki Anna Karenina – jackal
należy użyć 'CADisplayLink' zamiast' NSTimer' do ręcznego prowadzenia animacji, gdyż jest zsynchronizowany z aktualizacji wyświetlania. Zobacz [Sesja WWDC 2014 236: Tworzenie Interruptible and Responsive Interactions] (https://developer.apple.com/videos/play/wwdc2014-236/) około 13:00. –