缩放 UIScrollView 时滚动到矩形?

Posted

技术标签:

【中文标题】缩放 UIScrollView 时滚动到矩形?【英文标题】:Scrolling to a rect when UIScrollView is zoomed? 【发布时间】:2011-06-22 21:04:19 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

我在我目前正在开发的应用程序中做了非常相似的事情,但我没有使用-scrollRectToVisible,而是使用-setContentOffset

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

CGFloat curZoom = scrollView.zoomScale;

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

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

我的标记是包含我的地图的 UIImageView 的子视图。听起来你正在以同样的方式做这件事,所以我想这(或类似的东西)应该适合你。

【讨论】:

还没有机会尝试这个,但我认为它应该可以工作。我会告诉你的。 我没有在这里发表评论,而是在下面添加了一个帖子以使其更清晰。

以上是关于缩放 UIScrollView 时滚动到矩形?的主要内容,如果未能解决你的问题,请参考以下文章

缩放时,UIScrollview 子视图无法识别手势

用UIScrollView缩放时,无法正常滚动到下端

UIScrollview 子视图在缩放后无法识别平移手势

iOS开发UI篇—UIScrollView控件实现图片缩放功能

UIScrollView的缩放原理

在iOS中使用动画将图像缩放到特定的矩形?