我们如何获得物体的“视觉”坐标?例如,在UIScrollView中获取文本字段的框架将为我提供相对于UIScrollView的X和Y,但我想知道X和Y,就像它们在视图中显示一样。
是否有内置功能?
答案 0 :(得分:17)
一旦你有了CGPoint的观点,你可以打电话:
// Objective-C
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view
// C#'s UIView class contains this method:
PointF ConvertPointToView (PointF point, UIView target);
关于你UIView。
在你的观点中指出你的观点是坐标。并且用于查看传递
// Objective-C
[UIWindow keyWindow]
// C#
UIWindow.KeyWindow
这将返回一个CGPoint(C#中的PointF)转换为windows坐标系!
例如:
// Objective-C
CGPoint convertedPoint = [myScrollView convertPoint:textField.frame.origin
toView:[UIWindow keyWindow]];
// C#
var convertedPoint = myScrollView.ConvertPointToView (
textField.Frame.Location, UIWindow.KeyWindow);
希望这会有所帮助:)
答案 1 :(得分:2)
UIView有一些convertPoint和convertRect函数:
- convertPoint:toView:
– convertRect:toView:
等
答案 2 :(得分:2)
可能只是我,但这不会很好吗?
- (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;
}