Zurücksetzen des Ursprungs eines transformierten UIView steigt in Verrücktheit
-
20-08-2019 - |
Frage
I drehen / Maßstab eine UIView mit [UIView Transformation:] und das funktioniert gut. Doch sobald ich die Ansicht des Rahmens Ursprung der Inhalt der Ansicht zu ändern beginnt auch ‚bizarr‘ maßstäblich obwohl ich keine weiteren CGAffineTransforms bin durchgeführt wird.
Warum tritt das? Wie kann ich das verhindern?
Update 1:
Die docs deuten darauf hin, dass der Rahmen ungültig ist nach einer Transformation. Kann ich den Blick über es ‚Zentrum‘ Eigenschaft stattdessen bewegen?
Update 2:
Einstellen der Ansichten Zentrum zuließ mir die Sicht erfolgreich zu übersetzen, nachdem ein angewandt worden verwandeln.
Lösung
Kann ich bewege die Ansicht über das ‚Zentrum‘ ist Eigentum statt?
Die Dokumentation definiert die center
Eigenschaft als:
Das Zentrum des Rahmens.
und sagt:
Der Mittelpunkt im Koordinatensystem seiner Super angegeben ist.
Ich würde es versuchen.
Andere Tipps
Von der UIView docs :
transformieren:
Achtung: Wenn diese Eigenschaft nicht die Identität Transformation ist, wird der Wert von die Rahmen-Eigenschaft ist nicht definiert und daher sollte ignoriert werden.
Das Zentrum Eigenschaft ist nur eine bequeme Methode, die wirklich den Rahmen des Ursprungs zurücksetzt.
Edit: beigefügter Kommentar zu beantworten:
Wenn Sie mit der Eigenschaft transformieren und möchten Ihre Ansicht neu zu positionieren, haben Sie die Übersetzung Ihre Transformation mit verketten:
view.transform = CGAffineTransformTranslate(view.transform, tx, tx);