如何获取键盘附件视图内部视图的屏幕坐标?
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)
基本上,我已将附件视图放在键盘顶部,在该视图内我有视图,为此我需要位置,但相对于整个屏幕(就像我将它放在整个屏幕上一样)并且不是超级视图?
我有点像这样尝试过:,
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)