如果我将进度条放在 UIScrollView 之外,我会得到一些 x 和 y 轴(如(110,250)),如果我将进度条保留在 UIScrollView 中,我会得到不同的 x 和 y 轴(如(9,100))。
我的要求是我必须将进度条放在 UIScrollView 中,但我想知道 UIScrollview 之外进度条的 x 和 y 轴。
即我的进度条起源必须相对于 UIView 计算而不是相对于 Scrollview
请给我解决方案。
如果我将进度条放在 UIScrollView 之外,我会得到一些 x 和 y 轴(如(110,250)),如果我将进度条保留在 UIScrollView 中,我会得到不同的 x 和 y 轴(如(9,100))。
我的要求是我必须将进度条放在 UIScrollView 中,但我想知道 UIScrollview 之外进度条的 x 和 y 轴。
即我的进度条起源必须相对于 UIView 计算而不是相对于 Scrollview
请给我解决方案。
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
这两个 UIView 方法应该可以帮助您:
– convertPoint:toView:
– convertPoint:fromView: