2009-05-13 7 views
1

Ich finde das ziemlich verwirrend. Wenn Sie eine Ansicht drehen möchten, wird sie um den Mittelpunkt gedreht. Aber das ist nicht immer gut. Wenn Sie also in Ihrer Ansicht um einen bestimmten Ursprung drehen müssen, müssen Sie die Eigenschaft anchorPoint des Layers der Ansicht festlegen.Wie kann ich eine Ansicht basierend auf einem Rotationsursprung drehen, deren Position im Ansichtskoordinatensystem angegeben ist?

Nun, das Problem ist, dass diese anchor Eigenschaft ziemlich verwirrend Werte für den durchschnittlichen intelligenten Programmierer nimmt;)

Sie sind von 0 bis 1, soweit ich weiß. Außerdem wird das Koordinatensystem in das Koordinatensystem der Ansicht gekippt, wobei ich denke, dass 0 der kleinste Wert im Koordinatensystem der Ansicht und 1 der größte Wert ist.

myView.layer.anchorPoint = CGPointMake(0.5, 0.5); 

würde den Ankerpunkt in der Mitte der Ansicht festlegen.

Was kann ich tun, wenn ich nur wissen: - meiner Meinung nach ist 100 x 150 Einheiten groß - Ich möchte die anchor bei x = 100 und y = 20 sein, System aus meiner Sicht koordinieren

Irgendeine Idee, wie man das erreicht?

+0

Sie haben eine Reihe von Fragen auf denselben Linien gestellt: http://stackoverflow.com/questions/852863/how-can-i-rotate-an-uiimageview-by-20-degrees http://stackoverflow.com/questions/854137/can-i-set-the-origin-of-rotation-when-roating-an- view-with-cgaffinetransformmake http://stackoverflow.com/questions/857158/why-does -setting-the-Ankerpunkt-der-Ebenen-Grenzen-Rechteck-Verhalten-so-strang Vielleicht wäre dies am besten als Follow-up zu einer dieser Fragen, anstatt eine eigenständige Frage. –

Antwort

2

Klingt wie Sie verwenden würden

myView.layer.anchorPoint = CGPointMake(1.0, 0.133); 

Sie nur Prozentwerte sind, nicht wahr? 100/100 = 1 und 150/20 = 0,133.

+0

Ja, ich dachte, das war, was ich ihm gesagt habe: http://stackoverflow.com/questions/857158/why-does-setting-the-anchorpoint-of-the-layers-bounds-rectangle-behave-so-strang . Wie bei den Farbkomponenten in einem CGColor werden die X- und Y-Koordinaten eines Ankerpunkts auf 1,0 normalisiert. Sie müssen nur durch die Größe der Ebene in dieser Dimension dividieren. –

Verwandte Themen