所以可以说我有一个 UIScrollView,其中有 3 个 UIView,每个 UIView 中都有一个 UISlider。它们在 UIScrollView 中垂直定位。
我现在在 UIScrollView 中还有第四个 UIView,我希望根据已使用的 slider 的位置来移动它。
因此,在我传递给发送者的 sliderChanged 方法中,我获取了 slider 的位置,并将第四个 UIWindow 的位置调整为其 y。这在第一个 UIView 上效果很好,但一旦在另一个 UIView 上,它迫使我向下滚动,使用 slider 移动第四个 UIView 但停留在 UIScrollView 的开头
我正在使用:
[4thView setCenter:CGPointMake([4thView center].x, [slider center].y+10)];
我需要的是获取 slider 相对于scrollView内容的位置,而不是相对于其UIView的位置,这样我就可以相对于scrollView内容再次设置第四个 View 。
最佳答案
您可以通过UIView的实例方法转换点。
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view
- (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view
例如,我想将viewA上的ponint转换为scrollViewB的坐标。
CGPoint aPtInScrollView = [viewA convertPoint:aPoint toView:scrollViewB];
或者,我想知道viewA在scrollViewB中的位置。
CGPoint aPosViewA = [scrollViewB convertPoint:CGPointZero fromView:viewA];
关于iphone - 如何在 UIScrollView 中获取 UIView 中对象的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663954/