Objective c 如何在iOS中获取对象相对于窗口的位置?
我们如何获得物体的“视觉”坐标?例如,在UIScrollView中获取文本字段的帧将给出相对于UIScrollView的X和Y,但我想知道X和Y,就像它们显示在视图中一样Objective c 如何在iOS中获取对象相对于窗口的位置?,objective-c,ios,ios5,xamarin.ios,Objective C,Ios,Ios5,Xamarin.ios,我们如何获得物体的“视觉”坐标?例如,在UIScrollView中获取文本字段的帧将给出相对于UIScrollView的X和Y,但我想知道X和Y,就像它们显示在视图中一样 是否有内置函数?一旦将点作为CGPoint,您就可以调用: // Objective-C - (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view // C#'s UIView class contains this method: PointF Convert
是否有内置函数?一旦将点作为CGPoint,您就可以调用:
// Objective-C
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view
// C#'s UIView class contains this method:
PointF ConvertPointToView (PointF point, UIView target);
在你的视野里
在你们的观点坐标中,把你们的观点作为观点来传递。和视图传递
// Objective-C
[UIWindow keyWindow]
// C#
UIWindow.KeyWindow
然后将返回转换为windows坐标系的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);
希望这有帮助:)UIView有一些convertPoint和convertRect功能:
- 可能就是我,但这行不行
- (CGRect) convertView:(UIView*)view { CGRect rect = view.frame; while(view.superview) { view = view.superview; rect.origin.x += view.frame.origin.x; rect.origin.y += view.frame.origin.y; } return rect; }