convertPoint toView没有获得屏幕上的绝对位置

时间:2013-12-03 18:03:03

标签: ios iphone objective-c uiview uiwindow

我已多次阅读此iPhone - Get Position of UIView within entire UIWindow和其他人,但无法让我的应用向我输出屏幕上某些内容的绝对位置。

我有一个跳转的滚动视图,我正在尝试找出原因。我希望能够检查它在屏幕上的位置(而不是相对于其超视图的帧)。我尝试了以下内容:

CGPoint point = [scrollView.superview convertPoint:scrollView.frame.origin toView:nil];
NSLog(@"point is %f", point.y);

然而控制台显示0作为滚动视图的Y位置,尽管事实上滚动视图实际上并不在我的屏幕上,但它大约有三分之一。这种方法不能在绝对的整个320x568屏幕中显示某些位置吗?我确定它很小,但是有人能指出我错过的东西吗?

2 个答案:

答案 0 :(得分:4)

UIScrollView有一个名为contentOffset的属性。如果你想知道绝对位置,你需要获取视图的位置(在滚动视图中)并减去滚动视图的contentOffset

答案 1 :(得分:-1)

UIView *parentview =  [[UIApplication sharedApplication] window].rootViewController.view
CGPoint point = [parentview convertPoint:scrollView.frame.origin toView:nil];
NSLog(@"point is %f", point.y);