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

最小比例为0.5

最大规模为2.0

我需要总是使用更大的contentSizeUIScrollView能够拖动内容。 因此,随着内容的CGRect的变化, UIScrollView contentSize也在发生变化。

但是,当我缩小时,如果比例低于1.0,则contentOffset突然变为{0.0,0.0},这使得很难调整内容的大小,同时保持其对叠加视图的位置(例如,衣服图像)。

换句话说,我不能让内容视图更小,同时保持它位于UIScrollView的中心。

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

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

这个post得到了很好的回答: UIScrollView带有居中的UIImageView,就像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&关键字=编程+ iOS6的

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

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