W aplikacji dla iPhone'a chcę, aby tekst w UILabel świecił przez sekundę, a następnie znikł na sekundę ;. Również chcę powtórzyć ten cykl, powiedzmy 3 lub 4 razy.Efekt świecowania tekstu IPhone
Czy to możliwe?
W aplikacji dla iPhone'a chcę, aby tekst w UILabel świecił przez sekundę, a następnie znikł na sekundę ;. Również chcę powtórzyć ten cykl, powiedzmy 3 lub 4 razy.Efekt świecowania tekstu IPhone
Czy to możliwe?
Tak. Użyj funkcji beginAnimation ... commitAnimation i użyj wartości alpha, aby rozjaśnić lub przyciemnić ULabel. Upewnij się, że domyślna wartość alfa UILabel zaczyna się od 0,85 i rozjaśnia się do 1,0, a następnie zmniejsza się do 0,75, a kiedy wszystko jest już gotowe, wracasz do 0.85.
Są na to inne sposoby, takie jak posiadanie innego widoku na górze etykiety, który jest szary lub czarny i używasz tego samego początku ... commitAnimation, aby zmienić alfa na wartość z 0 na 0.20 lub mniej.
Przeczytaj pytanie, proszę – SeniorShizzle
Odpowiada sam na część animacji, więc ta odpowiedź jest w porządku. –
Istnieje wiele sposobów na zrobienie tego przy różnej jakości. Jednym ze sposobów jest podklasa UILabel i implementacja pewnego rodzaju efektu gradientu w coregraphics w metodzie drawRect.
Można również odtwarzać za pomocą cienia tekstu (zmieniać kolor i alfa) i sprawdzać, czy można uzyskać przyzwoitą poświatę.
Najprostszym sposobem jest najprawdopodobniej uczynienie przezroczystego obrazu z błyskiem w photoshopie i umieszczenie go za tekstem, a następnie zrób to, co sugeruje mahboudz ... znikaj z obrazu przy użyciu coreanimation.
Napisałem kilka przykładowych kodów, które podklasy UILabel i umożliwia stosowanie blask i miękkie cienie do tekstu.
http://www.redrobotstudios.com/blog/2010/04/29/create-glow-soft-shadow-text-on-iphone/
Począwszy od 3.2 tam jest bezpośrednie wsparcie dla cieni w SDK.
label.layer.shadowColor = [label.textColor CGColor];
label.layer.shadowOffset = CGSizeMake(0.0, 0.0);
grać z parametrami:
label.layer.shadowRadius = 3.0;
label.layer.shadowOpacity = 0.5;
i uniknąć cienia obcięcia bouds etykiecie:
label.layer.masksToBounds = NO;
Nie zapomnij
#include <Quartzcore/Quartzcore.h>
i link do QuartzCore
lub CoreGraphics
frameworków (dzięki komentatorom za wskazanie tego).
- (UILabel *) setUpGlowLabelWithFrame: (CGRect) frame fontSize: (int)fontSize {
UILabel* label = [[UILabel alloc] initWithFrame:frame];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:fontSize];
label.textColor = [UIColor whiteColor];
label.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
label.textAlignment = UITextAlignmentCenter;
label.layer.shadowColor = [label.textColor CGColor];
label.layer.shadowOffset = CGSizeMake(0.0, 0.0);
label.layer.masksToBounds = NO;
label.layer.shadowRadius = 0.5f;
label.layer.shadowOpacity = 0.95;
label.numberOfLines = 2;
label.tag = 20;
return label;
}
Otrzymuję efekt blasku podczas korzystania z tego.
Mam nadzieję, że to pomaga.
Happy kodowania :)
ładne pytanie. Chcę zrobić dokładnie to. – Raptor
Powinieneś zaakceptować odpowiedź @ andrewgleave, ponieważ zadziałało to świetnie! – msgambel