获取UIView在整个UIWindow中的位置

UIView的位置显然可以由view.centerview.frame等来确定,但是这只会返回UIView相对于它的直接超级视图的位置。

我需要确定UIView在整个320x480坐标系中的位置。 例如,如果UIView位于UITableViewCell它在窗口中的位置可能会发生显着变化,无论超级视图如何。

任何想法如果和如何这是可能的?

干杯:)


这很简单:

[aView convertPoint:localPosition toView:nil];

...将局部坐标空间中的点转换为窗口坐标。 您可以使用此方法来计算窗口空间中视图的原点,如下所示:

[aView.superview convertPoint:aView.frame.origin toView:nil];

2014编辑:看着Matt__C的评论的流行,似乎有理由指出坐标...

  • 旋转设备时不要改变。
  • 总是在未旋转屏幕的左上角出现。
  • 窗口坐标 :坐标系由窗口边界定义。 屏幕和设备坐标系不同,不应与窗口坐标混淆。

  • 在Swift中:

    let globalPoint = aView.superview?.convertPoint(aView.frame.origin, toView: nil)
    

    Swift 4

    let globalPoint = aView.superview?.convert(aView.frame.origin, to: nil)
    
    链接地址: http://www.djcxy.com/p/39467.html

    上一篇: Get Position of UIView within entire UIWindow

    下一篇: How to get a list of column names on sqlite3 / iPhone?