2009-08-17 8 views
9

Ich habe eine UIImageView, die Größe geändert werden kann, indem Sie ein- und auskneifen (Beispiel: view.frame.size.width + 10). Das Bild der Bildansicht kann auch gedreht werden (CGAffineTransformMakeRotate). Okay, hier ist das Problem: Wenn ich die UIImageView Größe ändern, nachdem eine Rotate Transformation angewendet wurde, ändert sich die Ansicht abnormal (inversly (verkleinern wenn es wachsen soll, umgekehrt) oder mit enormen Größenanpassungen). Wie kann ich meine UIImageView konsistent skalieren, unabhängig davon, ob eine CGAffineTransform angewendet wird oder nicht?Was passiert mit dem Attribut view.frame.size nach einer CGAffineTransform (Rotate)?

Antwort

17

Es gibt eine Warnung in der Dokumentation zu UIView, der sagt, für die frame Eigenschaft:

Warnung: Wenn die `transform` Eigenschaft nicht die Identität Transformation ist, der Wert dieser Eigenschaft ist nicht definiert und daher ignoriert werden soll .

Verwenden Sie stattdessen die Eigenschaften bounds und center; Sie bleiben lebensfähig, nachdem eine Transformation angewendet wurde.

+1

Danke, das hat immens geholfen. – RexOnRoids