如何在iOS中获取相对于Window的对象的位置?

Jon*_*ski 8 objective-c xamarin.ios ios ios5

我们如何获得物体的"视觉"坐标?例如,在UIScrollView中获取文本字段的框架将为我提供相对于UIScrollView的X和Y,但我想知道X和Y,就好像它们在视图中显示一样.

有内置功能吗?

Geo*_*een 17

一旦你有CGPoint点,你可以打电话:

// Objective-C
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view

// C#'s UIView class contains this method:
PointF ConvertPointToView (PointF point, UIView target);
Run Code Online (Sandbox Code Playgroud)

在你UIView.

在你的观点中指出你的观点是坐标.并且为了查看传递

// Objective-C
[UIWindow keyWindow]

// C#
UIWindow.KeyWindow
Run Code Online (Sandbox Code Playgroud)

然后这将返回一个转换为窗口坐标系的CGPoint(C#中的PointF)!

例如:

// Objective-C
CGPoint convertedPoint = [myScrollView convertPoint:textField.frame.origin 
                                             toView:[UIWindow keyWindow]];

// C#
var convertedPoint = myScrollView.ConvertPointToView (
     textField.Frame.Location, UIWindow.KeyWindow);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :)