UIView animation Stoppt, wenn die Ansicht verschwindet, nicht fortsetzen, wenn es wieder angezeigt wird

Hier ist meine config:

Habe ich ein storyboard mit einer ListViewController. ListViewController hat eine Untersicht UIView genannt EmptyListView. EmptyListView wird nur angezeigt, wenn es keine Elemente in der UITableView, ansonsten ist es versteckt.

EmptyListView hat eine Untersicht UIImageView genannt emptyListViewArrow, die optisch deutet auf die Schaltfläche erstellen Sie einen neuen Eintrag in meiner UITableView. Dieser Pfeil animiert ist unendlich in eine up & down-Mode.

Höre ich für EmptyListView um eine Benachrichtigung zu senden, wenn es beendet ist, legte es Untersichten. Ich mache das, weil wenn nicht, Animationen, mutieren Sie Zwängen sich falsch Verhalten.

- (void) layoutSubviews {
    [super layoutSubviews];

    [[NSNotificationCenter defaultCenter] postNotificationName:@"EmptyViewDidLayoutSubviews" object:nil];
}

Wenn ListViewController beobachtet diese Meldung, es beginnt die animation:

[UIView animateWithDuration:0.8f delay:0.0f options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse) animations:^{
    self.emptyListViewArrowVerticalSpace.constant = 15.0f;
    [emptyListView layoutIfNeeded];
} completion:nil];

Wenn ich die app im hintergrund oder drücken Sie eine andere ViewController auf den Stapel, sobald ich wieder kommen, um die app oder die ListViewController, die animation wird gestoppt/angehalten. Ich kann es nicht erhalten, um wieder zu starten.

Ich versucht habe:

  1. Hören, die für die Anwendung zurücktreten wird/ist aktiv geworden. Beim Austritt habe ich [selbst.Blick.Schicht removeAllAnimations] und dann versucht zu starten die animation erneut mit dem code oben.
  2. Entfernen der UIImageView animiert und das hinzufügen es zurück auf die übergeordnete Sicht, und dann versucht, um die animation zu starten.

Ich bin traurig darüber, dass die Verwendung von constraints hier, würde aber gerne einen Einblick in das, was könnte das problem sein.

Danke!

  • Sind Sie mit Ihren Methoden in viewDidLoad oder viewWillAppear?
  • viewDidAppear, aber nicht für einen bestimmten Grund.
InformationsquelleAutor chrysb | 2013-09-05
Schreibe einen Kommentar