Czy istnieje sposób na animację właściwości textColor obiektu Uibutton? Znalazłem kilka rozwiązań dla animacji kolorów tekstu UILabel, ale nie widziałem żadnych dla UIButton.Animowanie koloru tekstu UIButton
Odpowiedz
NSTimer ma absolutnie żadnego dobra jako narzędzie animacji, ani też nie powinno być stosowane do pomiaru czasu w ogóle, gdzie jest potrzebna precyzja (klatek) Ten blog post doskonale ilustruje mój pozycja, co zrobić z nieanimowanymi właściwościami UILabel, które powinny zostać wysłane do serwera renderowania za pośrednictwem CA, a nie NSTimer. Zamiast UILabel można używać lub owijać CATextLayer i animować jego właściwość foregroundColor
w standardowym bloku animacji.
Oczywiście trzeba by użyć
[UIButton setTitleColor:[UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0] forState:UIControlStateNormal];
Co do rzeczywiście się go ożywić i zmienić kolor z czasem, trzeba by utworzyć wystąpienie NSTimer i użyć paramater @selector aby skierować go do konkretna metoda do uruchomienia. Za każdym razem, gdy timer się uruchomi, uruchamia metodę, która następnie zmienia kolor twojego Uibutton.
[NSTimer scheduledTimerWithTimeInterval:2.0f
target:self
selector:@selector(updateCounter:)
userInfo:nil
repeats:YES];
Sprawdź również: http://servin.com/iphone/iPhone-Timers-and-Animated-Views.html
Uzgodnione. +1 dla linku – bkbeachlabs
Należy pamiętać, że nie zastąpi to dobrej animacji CA CA. Obiekty UIColor mogą nie być animowane, ale obiekty CGColor są absolutnie. Gdybyś mógł stworzyć podklasę UILabel, możesz zaimplementować własne renderowanie tekstu i korzystać z nieodłącznych animacji CA. – CodaFi
Ten isnt naprawdę animacja, ale to działa.
Utwórz zegar o dowolnej częstotliwości, z jaką chcesz animować kolory.
Niech ten zegar wywoła metodę, changeColorOnButton
przy każdym uruchomieniu.
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(changeColorOnButton:) userInfo:nil repeats:YES];
Utwórz tablicę kolorów, colorsArray
(albo zorganizować kolory z wyprzedzeniem, lub dodać kilka do tablicy i przetasować je losowo. Załóż int, intForColorInArray
.
W metodzie changeColorOnButton , zrób coś takiego:.
- (void) changeColorOnButton:(UIButton *) button {
UIColor *nextColor = [colorsArray objectAtIndex:intForColorArray];
[button.titleLabel.setTextColor:nextColor];
intForColorArray = (intForColorArray +1) % [colorsArray count];
}
wziął metodę timera z @Stuartsoft. Kredyt, na który należy się kredyt. – bkbeachlabs
To odpowiada bardzo dobrze here. W zasadzie używa tego przydatnego faceta: [UIView transitionWithView: duration: options: animations: ^() completion: ^()];
Zastosowanie przejście z widoku
[UIView transitionWithView:backButton
duration:0.5f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
[backButton setTitleColor:[_peacock lighten:d.primary] forState:UIControlStateNormal];
}
completion:^(BOOL finished){
}];
Działa świetnie.Możesz również użyć widoku rodzica jako głównego celu, a następnie animować wszystkie widoki podrzędne w wybrany sposób w bloku 'animacje' – Peterdk
Można użyć dwóch przycisków (lub etykiet, itp) o różnych kolorach, które umieszczone w tej samej pozycji:
button1 = UIButton(frame: frame)
button2 = UIButton(frame: frame) // same frame
button1.setTitleColor(UIColor.redColor(), forState: .Normal) // red
button2.setTitleColor(UIColor.blueColor(), forState: .Normal) // blue
Po tym można dotrzeć animację kolorach przez przejście animacja przycisku 2:
UIView.animateKeyframesWithDuration(
1.0, delay: 0, options: [.Autoreverse, .Repeat],
animations: {
UIView.addKeyframeWithRelativeStartTime(0.0, relativeDuration: 0.5, animations: {
self.button2.alpha = 1.0
})
UIView.addKeyframeWithRelativeStartTime(0.5, relativeDuration: 0.5, animations: {
self.button2.alpha = 0.0
})
}, completion: nil)
- 1. Animowanie tekstu UITextInput TekstInputView
- 2. Zmiana koloru tła UIButton
- 3. Wyrównywanie tekstu UIButton?
- 4. Zmiana tekstu UIButton programowo szybkiego
- 5. Animowanie tekstu za pomocą TextSwitcher W Androidzie
- 6. Zmiana koloru tekstu UISegmentedControl
- 7. Zmiana koloru tekstu na podstawie koloru tła
- 8. Przepełnienie dla koloru tła tekstu
- 9. zmiana koloru tekstu Przedmiot NavigationView
- 10. Zmiana koloru obramowania tekstu iOS
- 11. Zmiana koloru tekstu powłoki (Windows)
- 12. Zmiana koloru tekstu w MoreNavigationController
- 13. Zmiana koloru tekstu w Android.R.layout.simple_list_item_2
- 14. wyjście [31m tekstu zamiast koloru
- 15. Przypisywanie koloru tekstu do tekstu w edytorze tekstu
- 16. Zmiana rozmiaru tekstu uibutton nie działa
- 17. Jak ustawić kolor tekstu tytułu UIButton?
- 18. Programowa zmiana tekstu Uibutton w Swift
- 19. Animowanie MKOverlayView
- 20. Zmiana koloru tekstu w WinForms RichTextBox
- 21. Generator interfejsu zmienia błąd koloru tekstu?
- 22. Zmiana koloru tekstu przycisku po naciśnięciu przycisku
- 23. Zmiana części koloru tekstu w widgecie "EditText"
- 24. MFC - zmiana koloru tekstu sterowania tekstem spoczynkowym
- 25. Zmiana koloru tekstu w polu tekstowym
- 26. Zmiana koloru tekstu dla formantów QML
- 27. Wykresy Google - zmiana koloru tekstu osi
- 28. Zmiana koloru tekstu jeśli progressbar sięga
- 29. Zmienianie koloru zaznaczenia tekstu za pomocą CSS?
- 30. Zmiana koloru tekstu w polach SELECT
Łącze jest zepsute, byłoby dobrze z przykładem ... – user1506145
Łącze nie jest zepsute ... – CodaFi