Как получить местоположение объекта относительно окна в iOS? - PullRequest
8 голосов
/ 30 января 2012

Как мы можем получить «визуальные» координаты объекта?Например, получение кадра текстового поля в UIScrollView даст мне X и Y относительно UIScrollView, но я хочу знать X и Y, как если бы они были показаны в представлении.

Есть ливстроенная функция?

Ответы [ 3 ]

17 голосов
/ 30 января 2012

Когда у вас есть точка в качестве 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 (PointF в C #), преобразованный в систему координат Windows!

Так, например:

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

// C#
var convertedPoint = myScrollView.ConvertPointToView (
     textField.Frame.Location, UIWindow.KeyWindow);

Надеюсь, это поможет:)

2 голосов
/ 30 мая 2013

Может быть, только я, но разве это не сработает?

- (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;

}
2 голосов
/ 30 января 2012

UIView имеет некоторые функции convertPoint и convertRect:

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...