UIScrollview contentOffset在iOS 6和iOS 7中有所不同

问题描述:

我有一个ViewController,它包含带图像的UIScrollView。用户可以使用UIScrollView缩放/平移图像。用户完成后,我需要裁剪图像。我可以使用zoomScale和contentOffset来查找可见的矩形,但它在iOS6和iOS7中的功能不一样。如果我放大使用模拟器,和的NSLog的信息的两个版本几乎完全一样的斑点,这就是我得到:UIScrollview contentOffset在iOS 6和iOS 7中有所不同

iOS7:

zoom: 2.56 
content offset: {256.5, 274} 
content size: {817.75256, 817.75256} 
picture size: {960, 960} 
scrollview bounds: {{256.5, 274}, {320, 320}} 

iOS6的:

zoom: 2.54 
content offset: {170.5, 182} 
content size: {813.26, 813.26} 
picture size: {960, 960} 
scrollview bounds: {{170.5, 182}, {320, 320}} 

的缩放和内容尺寸略有不同,这很好,因为我手动尝试缩小到两个模拟器上的相同位置。但为什么contentOffset有巨大的差异?

模拟器使用:

  • 视网膜3.5" 6.1
  • 视网膜3.5" 7.1

而且,我使用self.automaticallyAdjustsScrollViewInsets = NO;对于iOS7

+0

iOS6和iOS7几乎所有的都不一样。 –

+0

你有没有向我们展示的滚动视图代表(或其他)代码?给我们看一看。 – matt

+0

另外:为什么内容大小不同?它是如何计算/生成/设置的? – matt

我想通了。显然,使用Autolayout在iOS 6的UIScrollView中平移/缩放图像非常棘手。需要采取一些解决方法才能正常工作。对我来说最简单的事情是创建一个禁用Autolayout的单独故事板文件,并将该视图控制器移到那里。现在就像魅力一样。