Ich habe eine Ansicht, die ich skalieren und an einen neuen Ort übersetzen möchte, indem ich sie animiere. Ich versuchte es mit dem folgenden Code zu erreichen:UIVIew Animation - Skalierung + Übersetzung
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:kDurationForFullScreenAnimation];
[[self animatingView] setFrame:finalRect];
[UIView commitAnimations];
Die Wirkung dieses Codes ist, der Blick zuerst Größe seines Inhalts des wechselt in die finalRect und dann übersetzt sie in die neuen Position. h. der Skalierungsteil wird niemals animiert. Die Ansicht wird einfach in die neue Größe umgewandelt und dann übersetzt.
Dieses Problem wurde bereits in mehreren anderen Threads diskutiert, aber keiner von ihnen zieht eine Schlussfolgerung. Eine Lösung besteht jedoch darin, einen Zeitgeber zu verwenden und den Rahmen jedes Mal in dem Zeitgeberrückruf festzulegen, aber es hat einen Leistungsnachteil.
Was ist die am besten geeignete Lösung für dieses Problem, auch, warum im ersten Fall dieses Problem auftreten?
Dank
Die Sache ist, wenn ich so tut, wird der Inhalt der Ansicht und alle Unteransichten übernehmen die newRect sofort . Sie werden nicht auf den neuen Frame animiert. Wie gesagt, Sie haben eine Bildansicht als Unteransicht für die animierende Ansicht, das Bild in Bildansicht wird nicht schrittweise skaliert. Stattdessen wird das Bild zuerst in newRect hochgeblasen und dann werden die Grenzen der Ansicht skaliert + übersetzt.Das Ändern der Mitte funktioniert jedoch im Animationsblock, aber die Grenzen ändern sich nicht wie erwartet. –