【发布时间】:2013-12-19 22:31:44
【问题描述】:
我已多次阅读此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 屏幕中的位置吗?我敢肯定它很小,但有人能指出我缺少什么吗?
【问题讨论】:
-
你确定是滚动视图本身,而不是它的内容在屏幕上跳转?您的窗口是否占据了整个屏幕?
-
感谢您的帮助!我之前曾想过这一点,所以我在笔尖中对滚动视图进行了着色以确保它实际上是滚动视图本身在四处移动。我只是想在屏幕上捕捉绝对位置很容易,但我必须有其他事情发生,以防止 convertPoint 工作
-
你在什么地方尝试获取屏幕坐标?是否在 viewDidLoad 中?
-
我尝试了几个地方(不是 viewdidload),但也许这就是我的问题。我可以尝试找到运行的最后一个方法以获得它的最终位置
-
如果你在启动时显示滚动视图,你可以在 viewDidAppear 中试试这个。
标签: ios iphone objective-c uiview uiwindow