2009-05-08 5 views

Antwort

18

Eine Möglichkeit besteht darin, den Ankerpunkt der zugrunde liegenden Ebene des UIImageView zu ändern und sich darüber zu drehen. Sie können den Drehpunkt ändern in etwa wie folgt verwendet:

imageView.layer.anchorPoint = CGPointMake(0.25, 0.25); 

anchor wird in Bezug auf den relativen Koordinaten innerhalb der Schicht definiert. Das heißt, (0,0) ist die obere linke Ecke der Ebene (auf dem iPhone, wo die UIView-Ebenen die Y-Koordinaten umgedreht haben) und (1,1) ist die untere rechte Ecke.

Durch das Verschieben des anchorPoint wird möglicherweise Ihr Bild verschoben, sodass Sie die Position möglicherweise später anpassen müssen.

Um das Image der Schicht über diesen neuen Ankerpunkt zu drehen, können Sie die CATransform3D Struktur für die Schicht in etwa wie folgt verwendet ändern können:

CATransform3D rotatedTransform = imageView.layer.transform; 
rotatedTransform = CATransform3DRotate(rotatedTransform, 60.0 * M_PI/180.0, 0.0f, 0.0f, 1.0f); 
imageView.layer.transform = rotatedTransform; 

In diesem Beispiel wird eine inkrementelle Drehung von 60 Grad um den Ankerpunkt .

Alle Änderungen an einer Ebene werden standardmäßig animiert. Sie können diese Animation deaktivieren, indem Sie Ihre Änderungen an diesen Eigenschaften in einem CATransaction wie die folgende umschließenden:

[CATransaction begin]; 
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];  

// Code for changes here 

[CATransaction commit]; 
+2

gerade hinzufügen, ein paar Notizen hier für meine Zukunft selbst: '#import #import 'und Sie müssen auch das' QuartzCore'-Framework importieren. Vielen Dank. –

+0

aber das bewegt das Bild wie du sagst. Ist es möglich, den Ankerpunkt einfach zu verschieben? – hfossli

+0

@Fossli - Nein, die Position einer Ebene ist an ihren Ankerpunkt gebunden. Es ist jedoch relativ einfach herauszufinden, wie die neue Position für den Layer aussehen sollte, und sowohl den Ankerpunkt als auch die Position des Layers in einer nicht animierten Transaktion zu ändern. –

Verwandte Themen