我有一个UIScrollView
包含自定义绘制视图(两个圆圈)的可缩放视图。当视图被缩放时,我想知道圆圈的中心在哪里,在应用程序的窗口中。考虑以下步骤:
1X 时的视图
视图以任意级别缩放,捏合集中在第一个圆圈上
视图以任意级别缩放,捏集中在右上角
我的意思是,如果我要在滚动视图顶部放置另一个包含圆圈的视图,以便该视图中的圆圈是同心的(不需要大小相同)在滚动视图的视图中具有较小的圆圈,新圆圈的中心应该位于哪里?
我有一个UIScrollView
包含自定义绘制视图(两个圆圈)的可缩放视图。当视图被缩放时,我想知道圆圈的中心在哪里,在应用程序的窗口中。考虑以下步骤:
1X 时的视图
视图以任意级别缩放,捏合集中在第一个圆圈上
视图以任意级别缩放,捏集中在右上角
我的意思是,如果我要在滚动视图顶部放置另一个包含圆圈的视图,以便该视图中的圆圈是同心的(不需要大小相同)在滚动视图的视图中具有较小的圆圈,新圆圈的中心应该位于哪里?
当使用 UIView 的坐标转换方法时,您的自定义视图嵌入到滚动视图中并不相关:
MyCustomCircleView *circleView;
CGPoint centerInLocalCoordinates = circleView.centerOfACircle;
CGPoint centerInWindowCoordinates = [circleView convertPoint:centerInLocalCoordinates
toView:nil];
也许窗口坐标不是您想要的。请记住,窗口的坐标空间始终是纵向的,并且主页按钮位于底部。在横向握持设备时,您的坐标(当然)会旋转。
转换为超级视图的坐标可能更容易,例如您的视图控制器的视图坐标空间。
你画了圆圈吗?scrollView.contentOffset
,scrollView.contentSize
和的某种组合scrollView.zoomScale
是您想要的。您可以使用这些值返回平移和缩放。