在可缩放的滚动视图中,如何确定窗口内容的位置?

Cod*_*ker 2 iphone objective-c uiscrollview ios

我有一个可缩放的UIScrollView,其中包含一个自定义绘制的视图(两个圆圈)。当视图被放大时,我想知道圆圈的中心在哪里,在应用程序的窗口中。考虑以下步骤: 1. 1x 处的视图

1X 处的视图

在此处输入图片说明

视图缩放到任意级别,捏合集中在第一个圆圈上

在此处输入图片说明

视图放大到任意级别,捏合点集中在右上角
我想问的是,如果我要在滚动视图的顶部放置另一个包含圆圈的视图,以便该视图中的圆圈是同心的(不需要大小相同)与滚动视图视图中的较小圆圈,新圆圈的中心应位于何处?

Nik*_*uhe 5

使用 UIView 的坐标转换方法时,自定义视图嵌入滚动视图无关:

MyCustomCircleView *circleView;

CGPoint centerInLocalCoordinates = circleView.centerOfACircle;
CGPoint centerInWindowCoordinates = [circleView convertPoint:centerInLocalCoordinates
                                                      toView:nil];
Run Code Online (Sandbox Code Playgroud)

也许窗口坐标不是你要找的。请记住,窗口的坐标空间始终是纵向的,并且主页按钮位于底部。当以横向方式握住设备时,您的坐标(当然)会旋转。

转换为超级视图的坐标可能更容易,例如您的视图控制器视图的坐标空间。