2016-12-16 4 views
0

Ich versuche, tief 'Subview' Frame zu einem oberen 'UIView' zu konvertieren. Ich füge die Ansichtshierarchie hier an.ConvertRect funktioniert nicht wie erwartet

Anbringen Illustration:

enter image description here

ich das versucht habe, aber das Ergebnis Weise weg Bildschirm:

let rect = smallSubview.convert(smallSubview.frame, to: bigSuperview) 

Ich versuche, die kleinen 'Subview' Rahmen zu konvertieren , zum 'VideoCrop'/bigSuperView Koordinatenraum. Irgendwelche Vorschläge? Vielen Dank!

+0

Bitte beachten Sie meine aktualisierte Antwort für die Erläuterung zu Ihrem Kommentar –

Antwort

3

Nicht sicher, aber sollten Sie keine Grenzen in Betracht ziehen, anstatt Rahmen Ihres SmallSubView?

ich meine:

let rect = smallSubview.convert(smallSubview.bounds, to: bigSuperview) 

EDIT

ich nicht Ihren Kommentar in Antwort hätte meine Antwort daher Aktualisierung beantwortet :)

Die Schnellansicht von convert API schlägt

func konvertieren (_ rect: CGRect, zu sehen: UIView?) -> CGRect Beschreibung
Konvertiert ein Rechteck aus dem Koordinatensystem des Empfängers in das von eine andere Ansicht.

Parameter

rect ein Rechteck in dem lokalen Koordinatensystem spezifiziert (Grenzen) des Empfängers.

Ansicht Die Ansicht, die das Ziel der Konvertierung ist. Wenn die Ansicht null ist, wird diese Methode stattdessen in Fensterbasiskoordinaten konvertiert. Ansonsten müssen sowohl view als auch der Empfänger zum selben UIWindow-Objekt gehören.

Wie es empfiehlt Ihnen, Grenzen werden sollten, anstatt Rahmen :)

Was ist der Unterschied zwischen Rahmen und Grenzen dann unter Berücksichtigung ??

Grenzen: Gibt den Standort und die Größe der Ansichten in einem eigenen Koordinatensystem an. Frame: Während dies den Ort und die Größe der Ansicht in seinem SuperViews Koordinatensystem spezifiziert :)

Daher werden Grenzen einer beliebigen Ansicht ihren Ursprung haben als (0,0) wo Frame hat seine x und y in Bezug auf seine superview :) während Höhe und Breite gleich sein :)

+0

Smooth. Funktioniert! Können Sie erklären, warum wir Grenzen statt Rahmen verwenden sollten? Bounds Herkunft wird immer 0,0 sein. –

+0

Ehrfürchtig. Danke Sandeep! :) Sollte die Dokumente sorgfältiger gelesen haben. Haha. Ich wünsche ihnen einen wunderbaren Tag! –

+0

@ roi-mulia: Immer willkommen, mein Herr !!! Hab einen schönen Tag auch du :) –

Verwandte Themen