使用 UIScrollView,在缩小时,如何将内容视图保持在中心?

Posted

技术标签:

【中文标题】使用 UIScrollView,在缩小时,如何将内容视图保持在中心?【英文标题】:Using UIScrollView, when Zooming Out, how can I keep the content view at the center? 【发布时间】:2012-03-01 03:20:25 【问题描述】:

最小刻度为 0.5

最大比例为 2.0

我需要为UIScrollView 使用更大的contentSize 才能拖动内容。所以,随着内容的CGRect在变化,UIScrollViewcontentSize也在变化。

但是,当我缩小时,如果比例低于 1.0,contentOffset 会突然更改为 0.0, 0.0,因此很难调整内容的大小,同时保持其在覆盖视图的位置(例如衣服图片)。

换句话说,我无法在将内容视图保持在UIScrollView 的中心的同时缩小内容视图。

请帮助我找到使用UIScrollView 放大/缩小的正确方法,同时保持内容视图的位置。

【问题讨论】:

【参考方案1】:

这在帖子中得到了很好的回答: UIScrollView with centered UIImageView, like Photos app

请特别参考 JosephH 的回答,该回答本身是从 2010 年 WWDC 演示文稿中挑选出来的。

这也包含在 Matt Neuburg 的书中,使用相同的 WWDC 参考: http://www.amazon.com/Programming-ios-6-Matt-Neuburg/dp/1449365760/ref=sr_1_1?ie=UTF8&qid=1367363707&sr=8-1&keywords=programming+ios6

其来源可在此处获得(参见第 20 章): https://github.com/mattneub/Programming-iOS-Book-Examples

对我来说,悬而未决的问题是,这不能作为约束的一部分来完成。

【讨论】:

【参考方案2】:

解决方案基本上是在初始设置时使用contentInset 将内容保持在中心,而不是contentOffset。在contentInset 未修改的情况下,放大或缩小的对象可以一直位于中心。

【讨论】:

以上是关于使用 UIScrollView,在缩小时,如何将内容视图保持在中心?的主要内容,如果未能解决你的问题,请参考以下文章

如何在放大时显示全文并在缩小时截断它

UILabel numberoflines 和 font size 在缩小时自动设置

如何跟踪缩放的 UIScrollView?

Three.js纹理有雾并且在缩小时重叠

如何使用 UIScrollView 捕捉缩放?

UIScrollview,当完全缩小时是不是可以在屏幕上移动视图?