UIScrollView缩放时滚动到矩形?

jmo*_*man 6 iphone zooming uiscrollview ios4

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

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

Kat*_*ish 12

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

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

CGFloat curZoom = scrollView.zoomScale;

[scrollView setContentOffset:CGPointMake((centerX*curZoom)-160, (centerY*curZoom)-161) animated:NO];
Run Code Online (Sandbox Code Playgroud)

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

我的标记是UIImageView的子视图,它包含我的地图.听起来你是以同样的方式做到这一点,所以我想这个(或类似的东西)应该适合你.