Czy istnieje sposób na powielenie animacji poświaty siri? Wygląda absolutnie cudownie, ale nie mam pojęcia w tej chwili, jak zacząć ... czy są pormy z preformatowanymi online, które są obracane? czy jest to zrobione z CoreAnimation?Odtworzyć animację Siri Button Glow
Odpowiedz
Wierzę, że animacja Siri została stworzona przy użyciu CAEmitterLayer i CAEmitterCell, a następnie animowana za pomocą animacji rdzenia, ale mogę być całkowicie błędna. Oto niektóre kod, który imituje efekt:
// create emitter layer
self.emitterLayer = [CAEmitterLayer layer];
self.emitterLayer.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height);
self.emitterLayer.emitterMode = kCAEmitterLayerOutline;
self.emitterLayer.emitterShape = kCAEmitterLayerLine;
self.emitterLayer.renderMode = kCAEmitterLayerAdditive;
[self.emitterLayer setEmitterSize:CGSizeMake(4, 4)];
// create the ball emitter cell
CAEmitterCell *ball = [CAEmitterCell emitterCell];
ball.color = [[UIColor colorWithRed:111.0/255.0 green:80.0/255.0 blue:241.0/255.0 alpha:0.10] CGColor];
ball.contents = (id)[[UIImage imageNamed:@"ball.png"] CGImage]; // ball.png is simply an image of white circle
[ball setName:@"ball"];
self.emitterLayer.emitterCells = [NSArray arrayWithObject:ball];
[self.view.layer addSublayer:self.emitterLayer];
float factor = 1.5; // you should play around with this value
[self.emitterLayer setValue:[NSNumber numberWithInt:(factor * 500)] forKeyPath:@"emitterCells.ball.birthRate"];
[self.emitterLayer setValue:[NSNumber numberWithFloat:factor * 0.25] forKeyPath:@"emitterCells.ball.lifetime"];
[self.emitterLayer setValue:[NSNumber numberWithFloat:(factor * 0.15)] forKeyPath:@"emitterCells.ball.lifetimeRange"];
// animation code
CAKeyframeAnimation* circularAnimation = [CAKeyframeAnimation animationWithKeyPath:@"emitterPosition"];
CGMutablePathRef path = CGPathCreateMutable();
CGRect pathRect = CGRectMake(0, 0, 200, 200); // define circle bounds with rectangle
CGPathAddEllipseInRect(path, NULL, pathRect);
circularAnimation.path = path;
CGPathRelease(path);
circularAnimation.duration = 2;
circularAnimation.repeatDuration = 0;
circularAnimation.repeatCount = 3;
circularAnimation.calculationMode = kCAAnimationPaced;
[self.emitterLayer addAnimation:circularAnimation forKey:@"circularAnimation"];
klas CAEmitterCell i CAEmitterLayer mają wiele właściwości więc sprawdź docs o więcej.
Proponuję zrobić to z plikami PNG wyświetlanymi jeden po drugim, aby uzyskać płynną animację. To znacznie łatwiejsze niż programowanie zakodowanej animacji. Przycisk został już odtworzony przez Arron Hunta: Siri Button Photoshop File
Btw. Animacja Sprite jest naprawdę łatwe do wykonania:
- (void)viewDidLoad {
[super viewDidLoad];
NSArray * imageArray = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"1.png"],
[UIImage imageNamed:@"2.png"],
[UIImage imageNamed:@"3.png"],
[UIImage imageNamed:@"4.png"],
[UIImage imageNamed:@"5.png"],
[UIImage imageNamed:@"6.png"],
[UIImage imageNamed:@"7.png"],
[UIImage imageNamed:@"8.png"],
[UIImage imageNamed:@"9.png"],
[UIImage imageNamed:@"10.png"],
[UIImage imageNamed:@"11.png"],
[UIImage imageNamed:@"12.png"],
nil];
UIImageView * ryuJump = [[UIImageView alloc] initWithFrame:
CGRectMake(100, 125, 150, 130)];
ryuJump.animationImages = imageArray;
ryuJump.animationDuration = 1.1;
ryuJump.contentMode = UIViewContentModeBottomLeft;
[self.view addSubview:ryuJump];
[ryuJump startAnimating];
}
Źródło: http://www.icodeblog.com/2009/07/24/iphone-programming-tutorial-animating-a-game-sprite/
Masz rację ... Więc wystarczająca jest implementacja wystarczającej ilości PNG dla animacji rotacji. Zawsze myślałem, że takie rzeczy powinny być wykonane za pomocą CoreAnimation, ponieważ wtedy łatwiej jest je modyfikować. Link jest świetny! Przyjrzę się temu! – konturgestaltung
Spójrz na moją zredagowaną odpowiedź na przykładowy kod, który wykonuje animację sprite. Powodzenia – Sbhklr
@ Lekkie, czy ktokolwiek może mieć zestaw obrazów PNG dla tego pliku PSD, nie mam żadnej wiedzy Photoshopa, by wyodrębnić obrazy. Może je przesłać gdzieś, więc łatwo jest każdemu z nich skorzystać.dzięki . – user1227928
UIImageView ma właściwość o nazwie animationImages, których można użyć, aby określić listę obrazów, które będą grać w kolejności, jak animowanym GIF . Jest to prawdopodobnie najłatwiejszy sposób, jeśli chcesz dokładnie kontrolować efekt.
Coś podobnego można również zrobić z CoreAnimation za pomocą jednego obrazu i animacji jego właściwości view.transform przy użyciu CGAffineTransformMakeRotation (kąt).
To była też moja pierwsza myśl ... zrobienie blasku z gradientem i alfa 0 w jednym, w kształcie koła, a następnie obrócenie tego ... ale nie jestem pewien, czy to by spowodowało ten efekt świecący. .. ponieważ nadal będzie wyglądał trochę statycznie? – konturgestaltung
Być może zechcesz również zmieniać wartość alfa w czasie, więc zmniejszaj i zmniejszaj alfa podczas obrotu, aby wydawać się nieco pulsować. –
ładne ..... powinno to zrobić ..... Ja spróbuję !! – konturgestaltung
- 1. Jak usunąć Glow of Button na myszy unosić w WPF
- 2. iOS Siri dodaj niestandardowe słownictwo
- 3. Wybieranie skrzynek Glow Blue na Twitterze Bootstrap
- 4. NSButton + & - Button
- 5. Jak zintegrować SIRI w aplikacji na iPhone'a?
- 6. Zapisz animację Matplotlib
- 7. Jak odtworzyć UnicodeEncodeError?
- 8. jQuery kliknij, aby włączyć animację
- 9. Firefox Radio Button Weirdness
- 10. jquery DatePicker Done button
- 11. IE7 BUTTON biały kontur
- 12. Jak wyłączyć Button asp.net
- 13. simple_form_for button przycisk inline
- 14. Dostosowywanie Linkedin Login Button
- 15. Jak zmienić domyślną animację podczas zmiany aktywności?
- 16. Jak uzyskać efekt cieniowania "Glow" w OpenGL ES 2.0?
- 17. spowolnić gdb, aby odtworzyć błąd
- 18. odtworzyć listę funkcji i parametrów
- 19. odtworzyć wersje - carrierwave-fog-AWS
- 20. JWPlayer nie może odtworzyć wideo
- 21. Jak przyspieszyć animację przejścia strony?
- 22. Sprawdzanie, czy aplikacja iOS została uruchomiona przez Siri
- 23. Możliwe sposoby rozwiązania problemu braku API dla Siri?
- 24. UIScrollview z UIButtons - jak odtworzyć trampolinę?
- 25. Android: Open Spinner od Button
- 26. Uibutton AppStore buy button animation
- 27. Tworzenie programu asp: Button programowo?
- 28. Floating Action Button animation Issue
- 29. WPF: Button Template vs ContentTemplate
- 30. Styling Button WPF Image + Tekst
self.fireEmitter brakuje kontekstu tutaj – Pascalius
Zapomniałem edytować te linie podczas kopiowania kodu. Powinien to być self.emitterLayer. Naprawiłem to. – jlajlar
Zapomniałeś wspomnieć, że "ball.png" powinno mieć około 5x5 pikseli ... – Idan