Oto mój config:UIView animacja zatrzymuje się, gdy widok znika, nie wznowić, gdy pojawi się ponownie
Mam storyboard z ListViewController. ListViewController ma widok podrzędny UIView o nazwie EmptyListView. EmptyListView jest wyświetlany tylko wtedy, gdy nie ma żadnych elementów w UITableView, w przeciwnym razie jest ukryty.
EmptyListView ma subview UIImageView o nazwie emptyListViewArrow, który wizualnie wskazuje na przycisk, aby utworzyć nowy wpis w moim UITableView. Ta strzałka jest animowana w nieskończoność w górę w dół w stylu &.
Słucham EmptyListView, aby wysłać powiadomienie po zakończeniu układania jego subviews. Robię to, ponieważ jeśli nie, animacje, które mutują wiązania, zachowują się niepoprawnie.
- (void) layoutSubviews {
[super layoutSubviews];
[[NSNotificationCenter defaultCenter] postNotificationName:@"EmptyViewDidLayoutSubviews" object:nil];
}
Kiedy ListViewController zauważa to powiadomienie, zaczyna animację:
[UIView animateWithDuration:0.8f delay:0.0f options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse) animations:^{
self.emptyListViewArrowVerticalSpace.constant = 15.0f;
[emptyListView layoutIfNeeded];
} completion:nil];
Jeśli mogę umieścić aplikację w tle lub wcisnąć kolejny ViewController na stosie, gdy wrócę do aplikacji albo ListViewController, animacja jest zatrzymana/wstrzymana. Nie mogę zacząć od nowa.
Próbowałem:
- Listening do stosowania zrezygnuje/stają się aktywne. Podczas rezygnacji zrobiłem [self.view.layer removeAllAnimations], a następnie spróbowałem ponownie uruchomić animację, korzystając z powyższego kodu.
- Usunięcie animacji UIImageView i dodanie jej z powrotem do widoku macierzystego, a następnie próba uruchomienia animacji.
Żałuję, że tutaj nie ma ograniczeń, ale bardzo chciałbym dowiedzieć się, jaki może być problem.
Dziękujemy!
Czy używasz swoich metod w 'viewDidLoad' lub' viewWillAppear'? – iOS
viewDidAppear, ale nie z żadnego konkretnego powodu. – chrysb