UIImageView 与 UIScrollView 的 viewForZoomingInScrollView 同步缩放:

Posted

技术标签:

【中文标题】UIImageView 与 UIScrollView 的 viewForZoomingInScrollView 同步缩放:【英文标题】:Sync zoom of UIImageView with UIScrollView's viewForZoomingInScrollView: 【发布时间】:2013-03-18 05:10:40 【问题描述】:

我正在开发某种自定义地图,它将在地图内容上方显示附加信息(我将其称为叠加)。但是叠加渲染非常困难,所以我只渲染用户此时可以在屏幕上看到的部分。但我也希望在用户缩放或平移地图时,也可以叠加缩放和平移(当然,无需重新渲染,因为它需要时间来完成)。所以我的叠加层是UIViewUIImageView 子视图。在用户平移期间,我查找contentOffset 更改(地图内容显示在UIScrollView)并将我的imageView 移动到该偏移量(将origin 更改为frame),所以这非常快。当用户从屏幕上分离手指时,我将初始 frame 设置为 imageView 并重新渲染它。我怎样才能用缩放做类似的事情?我尝试监视zoomScale 更改和contentOffset,但imageView 移动不像地图内容。任何建议如何做都会对我有用

【问题讨论】:

【参考方案1】:

我解决了来自另一端的问题。我没有计算偏移量和缩放比例,而是将叠加层添加到地图内容作为子视图,因此它可以很好地移动和缩放。当用户从地图上分离手指时,我将其从超级视图中删除并重新渲染

【讨论】:

以上是关于UIImageView 与 UIScrollView 的 viewForZoomingInScrollView 同步缩放:的主要内容,如果未能解决你的问题,请参考以下文章

当我从与移动设备中的图库相同的多个 UIImageView 显示中点击 UIImageView 时,未调用 touchesBegan 方法

iOS:UILabel 之后的 UIImageView 与多行

UIScrollView 与 UIImageView。图像未向上滚动

与 CGContextDrawImage 相比,为啥 UIImageView 如此占用内存

更改 UIImageView 大小以匹配图像与 AutoLayout

将 UIImageView 与自动布局对齐