0

如果我将进度条放在 UIScrollView 之外,我会得到一些 x 和 y 轴(如(110,250)),如果我将进度条保留在 UIScrollView 中,我会得到不同的 x 和 y 轴(如(9,100))。

我的要求是我必须将进度条放在 UIScrollView 中,但我想知道 UIScrollview 之外进度条的 x 和 y 轴。

即我的进度条起源必须相对于 UIView 计算而不是相对于 Scrollview

请给我解决方案。

4

2 回答 2

6

UIView 可以将矩形从一个坐标空间转换到另一个坐标空间,只要它们有一个共同的父视图(甚至是窗口)。因此,例如:

[scrollview convertRect:subview.frame toView:someOtherView];  //scrollView converts the frame of subView.frame to the coordinate system of someOtherView

有几种方法可以将点或矩形从另一个视图转换为另一个视图:

[superView convertRect:anotherView.frame fromView:anotherView.superView]; //Will give you the rect of anotherView.frame in superView coordinate system.

请注意,矩形可以是任何东西(不需要是特定视图的框架)。该方法所做的只是从一个坐标空间转换到另一个坐标空间。

此外,要在屏幕(或主窗口)上查找视图的坐标,您可以将“toView:”设置为 nil:

[superView convertRect:subView.frame toView:nil]; //will give you the coordinate of subView in the window
于 2012-04-18T12:12:36.013 回答
0

这两个 UIView 方法应该可以帮助您:

– convertPoint:toView:
– convertPoint:fromView:
于 2012-04-18T12:12:44.720 回答