Ich muss den Maßstab der Bildlaufansicht genau überwachen, damit ich die Elemente der Inhaltsansicht (eine Unteransicht, die mehrere CALayers verwaltet) gemäß dem animierten Zoom der Bildlaufansicht aktualisieren kann.In iOS 4.0, warum UIScrollView zoomToRect: animiert: triggert nicht die Delegierten scrollViewDidScroll oder scrollViewDidZoom während der Animation?
auf iOS 3.1, alles wie erwartet funktioniert, verwende ich zoomToRect: animated: und die scrollViewDidScroll: Nachricht des UIScrollViewDelegatewiederholt aufgerufen wird, während die Animation stattfindet, dass ich die subview Elemente aktualisieren entsprechend dem tatsächlichen Zoom.
Derselbe Code unter iOS 4.0 zeigt nicht das gleiche Verhalten. Wenn ich rufe zoomToRect: animated:, die Delegierten (scrollViewDidScroll: und scrollViewDidZoom) nur einmal aufgerufen, die desinchronized meine Unterelemente macht, bis die Animation beendet ist. Tatsächlich springen die Unterelemente sofort und werden dann von der Zoom-Animation erfasst, bis alles an der richtigen Stelle ist. Es ist, als würde die Animation die Änderungen an den Unteransichten nicht übernehmen CALayers.
Ich habe versucht, manuell mit Animationsblöcken animieren, aber die Situation ist die gleiche, keine progressiven Callback-Aufrufe. Ich habe auch versucht KVO, aber es ist mir nicht klar, wie ich in eine UIScrollView-gesteuerte Animation tippen würde.
Gibt es einen Workaround auf iOS 4, der es mir erlauben würde, den Skalierungswert auf meine Subviews zu schieben, da die UIScrollView-Skalierung animiert ist?
Ich habe diesen Ansatz versucht, aber das Problem ist, dass ich auf den aktuellen Wert des Zoomlevel zugreifen muss, während die Zoom-Animation ausgeführt wird, die nicht verfügbar ist. – David
Konnten Sie einen Timer einstellen, der mehrmals feuert, während die Zoomanimation läuft und Ihre Berechnungen dort vornimmt? – Pablo