contentOffset 在 UIScrollView 缩放结束时重置

Posted

技术标签:

【中文标题】contentOffset 在 UIScrollView 缩放结束时重置【英文标题】:contentOffset resets at the end of UIScrollView zoom 【发布时间】:2013-09-20 05:06:56 【问题描述】:

我正在做一些看起来应该很简单的事情,但我看到了我无法理解的奇怪结果。

我在UIScrollView 内部有一个UIImageView(以及它的大小),它是运行它的ios 设备的大小。所有这些都在 IB 中定义。

我定义了委托方法

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

    return storeImageView;

缩放时,我看到调用了以下委托方法:

viewForZoomingInScrollView
viewForZoomingInScrollView
viewForZoomingInScrollView
scrollViewWillBeginZooming
scrollViewDidZoom
scrollViewDidScroll scrollView contentOffset: NSPoint: 23.675083, 18.840801
scrollViewDidZoom
scrollViewDidScroll scrollView contentOffset: NSPoint: 44.748684, 35.630745
… REPEATED MANY TIMES...
scrollViewDidZoom
scrollViewDidScroll scrollView contentOffset: NSPoint: 782.82373, 588.79358
scrollViewDidZoom
scrollViewDidScroll scrollView contentOffset: NSPoint: 791.22223, 594.99152
scrollViewDidZoom
scrollViewDidScroll scrollView contentOffset: NSPoint: 791, 595
scrollViewDidEndZooming scale factor: 2.498063
scrollViewDidEndZooming scrollView frame: NSRect: 0, 0, 768, 1024
scrollViewDidEndZooming scrollView bounds: NSRect: 791, 595, 1024, 768
scrollViewDidEndZooming view frame: NSRect: 0, 0, 2558.0161, 1918.5121
scrollViewDidEndZooming view bounds: NSRect: 0, 0, 1024, 768
scrollViewDidEndZooming scrollView contentOffset: NSPoint: 791, 595
scrollViewDidScroll scrollView contentOffset: NSPoint: -0, -0
RE-WORK IMAGE AND DRAW NOW

令人困惑并导致图像偏移的是最后一个 scrollViewDidScrollcontentOffset 重置为 0,0。看来我一定是无意中留下了导致这种行为的属性集或未设置,但我还没有找到它。

任何建议的提示将不胜感激。

【问题讨论】:

【参考方案1】:

解决方案是禁用自动布局。

【讨论】:

谢谢理查德!虽然我的问题不同,但我从你的回答中得到了提示。我无法禁用自动布局,因为我在其他屏幕上使用它。我从 IB 中删除了 imageView 并以编程方式创建了它,因此删除了所有约束。

以上是关于contentOffset 在 UIScrollView 缩放结束时重置的主要内容,如果未能解决你的问题,请参考以下文章

dismissModalViewControllerAnimated 重置 contentOffset

UIScrollview 中的 ContentOffset 问题

在 UIScrollView 子类中设置 contentOffset 的正确位置在哪里?

IOS contentOffset该如何理解

如何获取 UIScrollView 中滚动的 contentOffset?

contentOffset 问题