2016-04-07 20 views
0

Im Grunde habe ich Accessory View oben auf dem Keyborad, innerhalb dieser Ansicht habe ich Aussicht, für die ich brauche die Position, aber relativ zum ganzen Bildschirm (wie ich es auf den gesamten Bildschirm setze) und nicht die Superview ?Wie erhalten Sie Bildschirmkoordinaten der Ansicht innerhalb der Tastaturzubehöransicht?

Ich habe versucht, es ein bisschen wie diese :,

How to get the absolute coordinates of a view

, aber ohne Erfolg.

+0

Aktualisieren Sie Ihre Frage mit dem eigentlichen Code, den Sie versucht, das Problem mit dem Ergebnis, zu verwenden und zu erklären. – rmaddy

Antwort

1

Sie können einen Rahmen (CGRect) oder einen Punkt (CGPoint) aus dem Koordinatensystem des Superview in das Koordinatensystem einer anderen Ansicht konvertieren. Alle diese Methoden sind Instanzmethoden UIView

Zum Beispiel:

let convertedRect = superview.convertRect(subview.frame, toView: anotherView)

In Ihrem Fall könnten Sie so etwas wie dies versuchen:

let cRect = keyboardAccessoryView.convertRect(accessorySubview.frame, toView: self.view)

Beachten Sie, dass diese konvertiert die Unteransicht (deren frame im Koordinatenraum der TastaturAccessory ist) zum Koordinatensystem der aktuellen ViewController-Ansicht.

Wenn Sie es in Bezug auf den gesamten Bildschirm wollen, versuchen Sie dies:

let coordinateSpace = UIScreen.mainScreen().coordinateSpace 
kbAccessoryView.convertRect(subview.frame, toCoordinateSpace: coordinateSpace)