我有一个UIImageView与UIScrollView内的图像(地图)。我添加另一个图像(标记)到图像视图(所以地图背景和标记)。如果标记未显示在屏幕上,当我放置标记时,我想滚动以显示标记。当UIScrollView放大时滚动到矩形?
我在地图上放置标记之后使用了[scrollView scrollRectToVisible:rect animated:YES]
。当scrollview没有放大时,这很好用。如何根据缩放比例调整rect
,以便标记在视图中居中?
我有一个UIImageView与UIScrollView内的图像(地图)。我添加另一个图像(标记)到图像视图(所以地图背景和标记)。如果标记未显示在屏幕上,当我放置标记时,我想滚动以显示标记。当UIScrollView放大时滚动到矩形?
我在地图上放置标记之后使用了[scrollView scrollRectToVisible:rect animated:YES]
。当scrollview没有放大时,这很好用。如何根据缩放比例调整rect
,以便标记在视图中居中?
我在我目前正在使用的应用程序中做了一些非常类似的事情,但我没有使用-scrollRectToVisible
,而是使用-setContentOffset
。
因为我知道我的标记在框架中的位置,所以我可以很容易地计算出它的中心,我保存为CGFloats centerX
和centerY
。然后我使用下面的代码居中屏幕上的标记(I从Y值中减去161,因为我的主视图具有选项卡栏和导航控制器,所以它是不完整的480分):
CGFloat curZoom = scrollView.zoomScale;
[scrollView setContentOffset:CGPointMake((centerX*curZoom)-160, (centerY*curZoom)-161) animated:NO];
通过将中心点乘以当前的zoomScale,我可以找到正确的中心点,而与缩放级别无关。
我的标记是保存我的地图的UIImageView的子视图。这听起来像是你正在以同样的方式做,所以我想这(或类似的)应该为你工作。
还没有机会尝试这个,但我认为它应该工作。我会告诉你。 – jmosesman
而不是在这里发表评论我已经在下面添加了一篇文章,使其更清洁。 – jmosesman