查找子视图iOS Sdk的实际来源

时间:2012-04-18 12:01:11

标签: objective-c xcode

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

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

,即我的进度条起源必须根据UIView计算,不尊重Scrollview

请给我解决方案。

2 个答案:

答案 0 :(得分:6)

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

[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.

请注意,rect可以是任何东西(不需要是特定视图的框架)。所有方法都是从一个坐标空间转换为另一个坐标空间。

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

[superView convertRect:subView.frame toView:nil]; //will give you the coordinate of subView in the window

答案 1 :(得分:0)

这两个UIView方法可以帮助你:

– convertPoint:toView:
– convertPoint:fromView: