Buduję małą aplikację na zegarek Apple. Mam w sobie Grupę i Etykietę. Co próbuję zrobić, to:Apple Watch - powolna animacja obrazu po raz pierwszy
- ożywiony obraz tła grupy
- blaknięcie w etykiecie po animacji obrazu kończy
Mój kod wygląda w zasadzie tak:
group.setBackgroundImageNamed("show_back-");
group.startAnimatingWithImagesInRange(NSMakeRange(0, 39), duration: 1.5, repeatCount: 1);
let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(1.5 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {() -> Void in
self.animateWithDuration(1) {() -> Void in
self.label.setAlpha(1)
};
};
Problem polega na tym, że po uruchomieniu tej sekwencji po raz pierwszy animacja obrazu wydaje się działać wolniej niż 1,5 sekundy, ponieważ etykieta zaczyna blaknąć wcześniej niż obrazy przestają się zmieniać. Jeśli zostanie to ponownie uruchomione, gdy aplikacja jest uruchomiona, wszystko działa zgodnie z oczekiwaniami. Sądzę, że ma to coś wspólnego z ładowaniem obrazów lub czymś.
Jak mogę sprawić, by działał on konsekwentnie? Nie mogłem znaleźć żadnego wywołania zwrotnego na końcu animacji sekwencji obrazów, aby subskrybować.
EDIT Innym problemem Zauważyłam: Mam inny przypadek, gdy BG jest animowana z bloku dispatch_after, a kiedy pozostawić aplikację naciskając koronkę i powrócić przez dwukrotne dotknięcie go, albo blok dispatch_after nie jest wywoływane lub animacja tła nie jest poprawnie renderowana przy pierwszym wywołaniu (myślę, że druga, ponieważ próbowałem dodać punkt przerwania do bloku wysyłki i był on wyzwalany za każdym razem, gdy testowałem). Używam funkcji watchOS2, więc może jest ona związana ze stanem wersji beta systemu operacyjnego?
Czy korzystasz z symulatora? – needshelp
@needshelp nie, testuję na prawdziwym urządzeniu; na symulatorze wszystko działa idealnie. – alchemiss
Jaki rozmiar mają twoje zdjęcia? – Swinny89