缩放 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 centerX
和 centerY
。然后我使用下面的代码使标记在屏幕上居中(我从 Y 值中减去 161,因为我的主视图有一个标签栏和一个导航控制器,所以它不是完整的 480 点):
CGFloat curZoom = scrollView.zoomScale;
[scrollView setContentOffset:CGPointMake((centerX*curZoom)-160, (centerY*curZoom)-161) animated:NO];
通过将中心点乘以当前的缩放比例,无论缩放级别如何,我都可以找到正确的中心点。
我的标记是包含我的地图的 UIImageView 的子视图。听起来你正在以同样的方式做这件事,所以我想这(或类似的东西)应该适合你。
【讨论】:
还没有机会尝试这个,但我认为它应该可以工作。我会告诉你的。 我没有在这里发表评论,而是在下面添加了一个帖子以使其更清晰。以上是关于缩放 UIScrollView 时滚动到矩形?的主要内容,如果未能解决你的问题,请参考以下文章