Ich schiebe einen UITableViewController
auf einen UINavigationController
mit pushViewController:animated:
. Ich möchte in dem Moment benachrichtigt werden, in dem die Animation beendet ist, sodass ich selectRowAtIndexPath
verwenden kann, um zu einer bestimmten Zeile zu blättern und sie hervorzuheben.
Wie kann ich den Delegaten einer Animation festlegen, die ich nicht explizit aufgerufen habe?Wie man benachrichtigt wird, wenn ein tableViewController die Übertragung auf einen Nav-Stack animiert
Antwort
Ich kenne keine Möglichkeit, den Delegaten der Push-Animation festzulegen. Hier ist ein einfacher Workaround:
Unterklasse UITableViewController
. Überschreiben Sie viewDidAppear:
, um Ihre "Post-Animation" -Methode nach einer kurzen Verzögerung aufzurufen.
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self performSelector:@selector(scrollToAndHighlightCurrentRow) withObject:nil afterDelay:0.4];
}
Haben Sie versucht, einfach die Methode selectRowAtIndexPath: animated: scrollPosition: (über die Eigenschaft tableView) aufzurufen, bevor Sie sie auf den Stack des Navigationscontrollers schieben?
Ja. Das ist, was ich weiß, aber dann endet die Scroll-Animation zur selben Zeit oder vor der Push-Animation. Ich möchte, dass der Benutzer weiß, dass er zu einer bestimmten Zeile gescrollt wird, indem er nur die Bildlauf- (und Hervorhebungs-) Animation startet, sobald die Bildanimation beendet ist. – Andrew
Ich meine "was ich * jetzt * ..." – Andrew
- 1. Wie man benachrichtigt wird, wenn NSWindow schließt
- 2. Wie man benachrichtigt wird, wenn eine Benachrichtigung gemeldet wird
- 3. Wie man benachrichtigt wird, wenn eine Eingabe gesetzt wurde
- 4. UIView - Wie wird benachrichtigt, wenn die Ansicht geladen wird?
- 5. wird benachrichtigt, wenn UITextField werdenFirstResponder
- 6. benachrichtigt wird, wenn eine Dateisperre
- 7. Wie pausiert man einen NSThread, bis er benachrichtigt wird?
- 8. wie man benachrichtigt wird, wenn das ble Gerät linkloss auftritt
- 9. Wie animiert man ein Fenster?
- 10. Wie füge ich ein imageView auf einen TableViewController hinzu?
- 11. Wie bewegt man ein Tastenziel/eine Gestenerkennung, wenn die Schaltfläche in swift (iOS) animiert wird?
- 12. Wie wird benachrichtigt, wenn ein Redis-Schlüssel abgelaufen ist?
- 13. Android - Wird benachrichtigt, wenn ein neuer Zugangspunkt erkannt wird?
- 14. Android wird benachrichtigt, wenn die Inhaltsanbieter-Bilddatenbank aktualisiert wird
- 15. Wie benachrichtigt werden, wenn scrollToRowAtIndexPath beendet
- 16. wird programmgesteuert benachrichtigt, wenn die Verarbeitung beendet ist
- 17. Wie animiert man einen Pfeil zwischen Koordinaten auf einer Broschüre?
- 18. Wie man einen Pfad auf Leinwand animiert - Android
- 19. CAKeyFrameAnimation animiert nicht, wenn CGPath verwendet wird
- 20. Wie wird die Opazität eines DropShadowEffect animiert?
- 21. Wie animiert man ein Fenster mit Processing?
- 22. Wie animiert man die Zeichnung eines CGPath?
- 23. Wie kann ich benachrichtigt werden, wenn eine UIView sichtbar wird?
- 24. jquery: Wie animiert man die Bewegung?
- 25. Wie man ReactCSSTransitionGroup animiert Elemente auf setState?
- 26. Wie animiert man in Cocos2d?
- 27. Wie animiert man eine Füllfarbenänderung auf UIBezierPath?
- 28. Wie wird benachrichtigt, wenn der Benutzer Fitnessdaten verweigert?
- 29. Wie kann ich benachrichtigt werden, wenn ein neues Fenster auf Win32 erstellt wird?
- 30. Wie wird man benachrichtigt, wenn sich die Höhe der Statusleiste ändert?
Oh großartig. Also 'viewDidAppear' wird nur einmal aufgerufen, wenn die Push-Animation beendet ist? Perfekt, Das hat es getan. Vielen Dank. – Andrew
Die 'viewDidAppear:' -Methode wird auch aufgerufen, wenn bei einer ausgeblendeten Ansicht die Obstruktionen entfernt wurden. Wenn Sie zum Beispiel eine andere Ansicht über Ihre Tabellenansicht schieben, wird beim Aufruf dieser Ansicht die 'viewDidAppear:' -Methode Ihres Tabellenansicht-Controllers erneut aufgerufen. –
Bitte lesen Sie http://stackoverflow.com/questions/4356256/how-to-get-notified-when-scrolltorowatindexpath-finishes-animating für eine Folgefrage. – Andrew