UIScrollView缩放时滚动到矩形?

时间:2011-06-22 21:04:20

标签: iphone ios4 uiscrollview zooming

我在UIScrollView中有一个带有图像(地图)的UIImageView。我将另一个图像(标记)添加到图像视图(所以地图背景和标记)。如果屏幕上没有显示标记,当我放置标记时,我想滚动显示标记。

我将标记放在地图上后,我正在使用[scrollView scrollRectToVisible:rect animated:YES]。当滚动视图未缩放时,这非常有用。如何根据缩放比例调整rect,以便标记在视图中居中?

1 个答案:

答案 0 :(得分:11)

我在目前正在处理的应用中做了类似的事情,但我没有使用-scrollRectToVisible,而是使用-setContentOffset

因为我知道我的标记在框架中的位置,所以我可以很容易地计算它的中心,我将其保存为CGFloats centerXcenterY。然后我使用以下代码将标记置于屏幕中心(我从Y值中减去161,因为我的主视图有一个标签栏和一个导航控制器,所以它不是完整的480分):

CGFloat curZoom = scrollView.zoomScale;

[scrollView setContentOffset:CGPointMake((centerX*curZoom)-160, (centerY*curZoom)-161) animated:NO];

通过将中心点乘以当前的zoomScale,无论缩放级别如何,我都能找到正确的中心点。

我的标记是UIImageView的子视图,用于保存我的地图。听起来你是这样做的,所以我想这个(或类似的东西)对你有用。