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

时间:2014-03-27 14:57:37

标签: ios uiscrollview

我有一个ViewController,它包含带图像的UIScrollView。用户可以使用UIScrollView缩放/平移图像。用户完成后,我需要裁剪图像。我可以使用zoomScale和contentOffset来查找可见的矩形...但它在iOS6和iOS7中的工作方式不同。如果我使用两个版本的模拟器缩放到几乎完全相同的位置,并且NSLog信息,这就是我得到的:

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存在巨大差异?

使用的模拟器:

  • Retina 3.5“6.1
  • Retina 3.5“7.1

另外,我正在使用self.automaticallyAdjustsScrollViewInsets = NO;对于iOS7

1 个答案:

答案 0 :(得分:1)

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