Wie drehe ich schrittweise ein UIImageView?
-
06-07-2019 - |
Frage
Ich brauche in Bild mehrmals in 90 Grad drehen Ich verwende folgenden Code,
CGAffineTransform transform = CGAffineTransformMakeRotation(PI/2);
shape.transform = transform;
hier prägen meine UIImageView zu sein.
Das Problem ist, ich jedes Mal auf Drehen klicken sie es von ihrer ursprünglichen Position drehen, die nicht das, was ich will. Ich würde es von der neuen Position zu drehen.
Ich bin neu in iphone Programmierung, Entschuldigungen, wenn ich auf etwas sehr einfach und Dank im Voraus bin fehlt Ihnen helfen.
Kedar
Lösung
Wenn Sie versuchen, diese Drehung zu animieren, könnten Sie meine Antwort diese Frage , wo jemand versucht hat zu eine inkrementelle Drehung einer Ansicht animieren. Es stellt sich heraus, dass inkrementelle Animation einer Transformation mit CABasicAnimations ist ein wenig komplizierter als man erwarten würde. Sie müssen zuerst die aktuelle Transformation Ihrer UIView die Schicht aus seiner presentationLayer, dann füttern, dass in der Animation als fromValue lesen.
Doch in Ihrem Fall scheint es, dass Sie eine UIView Animation Block werden unter Verwendung der Transformations Eigenschaft Ihrer Ansicht zu animieren. Der Code, wie Sie es nur auf die gleiche 90-Grad-Drehung verwandelt Ihre Ansicht der halten würde geschrieben haben, Einstellung, wäre es nicht drehen schrittweise die Ansicht um 90 Grad-Schritte. Um eine inkrementelle Rotation zu tun, ich glaube, Sie so etwas wie die folgenden bräuchten:
CGAffineTransform transform = CGAffineTransformRotate(shape.transform, M_PI / 2.0f);
shape.transform = transform;
, die die aktuelle Transformierte der Ansicht erregen werden, drehen sie um 90 Grad, und dann gelten die auf die Ansichtstransformation zur Folge hat. Dies kann wiederum in die gleichen Probleme läuft wie bei den CABasicAnimations, in dem Fall, dass Sie die oben verlinkte Antwort konsultieren sollten.