2010-12-23 10 views
1

Ich habe ein Problem. Ich habe eine UIImageView und ich mache eine Drehung mit CGAffineTransformMakeRotation(). Kein Problem damit. Aber wenn ich eine Rotation mit meinem UIViewController (Portrait in Landscape und/oder umgekehrt) mache. Meine UIImageView ist seltsam verändert.CGAffineTransformMakeRotation und UIViewController Rotation Zwangslage

Sein Rahmen werden Wechsel von: CGRectMake(50.f, 50.f, 150.f, 150.f) zu einem Rahmen wie: CGRectMake(50.f, 123.2f, 1004.56f, 1530.456f)

Mir ist klar, dass Änderungen passiert, wenn ich UIViewController Drehung tun, wenn ich eine Drehung auf meinem UIImageView ungleich 0, 90, getan haben 180 oder 270

ich denke, es ist, weil die UIViewController die rect des UIImageView ändern, aber wie hemmen dass comportement


Leider meine Ansicht bewegen/visuell ändern. Das ist mein Problem und warum ich hier darüber spreche ... Ich sprach über die frame Eigenschaft, weil ich bemerke, dass es seltsam verändert (und zufällig) und auch wenn ich es nach meinem ursprünglichen frame geändert habe. Die Aussicht scheint nicht darauf zu hören. Ich hoffe, es geht mir gut. Wer für eine Lösung?

Antwort

2

Wenn Sie die transform -Eigenschaft einer Ansicht auf eine andere als die Identitätsmatrix festlegen (die Sie zum Drehen benötigt haben), wird die frame-Eigenschaft undefiniert und sollte ignoriert werden. Dies ist in der Dokumentation vermerkt. Ist es nur die Frame-Eigenschaft, die schief geht oder sich die Ansicht auch auf unerwartete Weise visuell verändert?

1

Es ist nicht klar aus Ihrer Beschreibung, aber es klingt, als ob Ihre UIImageView ist eine Unteransicht der Ansicht im Besitz Ihrer UIViewController. Wenn Sie keinen Grund haben, es nicht auf diese Weise zu verwalten, würde ich vorschlagen, die UIImageView Streben und Federn (d. H.) auf das gewünschte Verhalten zu bringen und dann der übergeordneten Ansicht die Neupositionierung/Größenänderung der UIImageView zu erlauben.

Verwandte Themen