如何获取键盘附件视图内部视图的屏幕坐标?

How to get screen coordinates of view inside of keyboard accessory view?

基本上,我已将附件视图放在键盘顶部,在该视图内我有视图,为此我需要位置,但相对于整个屏幕(就像我将它放在整个屏幕上一样)并且不是超级视图?

我有点像这样尝试过:,

How to get the absolute coordinates of a view

但无济于事。

您可以将一个框架 (CGRect) 或一个点 (CGPoint) 从其父视图的坐标系转换到另一个视图的坐标系。所有这些方法都是 UIView

的实例方法

例如:

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

对于你的情况,你可以尝试这样的事情:

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

请注意,这会将子视图(其 frame 在 keyboardAccessory 的坐标 space 中)转换为当前 viewController 的视图坐标系。

如果你想要在整个屏幕方面,试试这个:

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