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
令人困惑并导致图像偏移的是最后一个 scrollViewDidScroll
与 contentOffset
重置为 0,0。看来我一定是无意中留下了导致这种行为的属性集或未设置,但我还没有找到它。
任何建议的提示将不胜感激。
【问题讨论】:
【参考方案1】:解决方案是禁用自动布局。
【讨论】:
谢谢理查德!虽然我的问题不同,但我从你的回答中得到了提示。我无法禁用自动布局,因为我在其他屏幕上使用它。我从 IB 中删除了 imageView 并以编程方式创建了它,因此删除了所有约束。以上是关于contentOffset 在 UIScrollView 缩放结束时重置的主要内容,如果未能解决你的问题,请参考以下文章
dismissModalViewControllerAnimated 重置 contentOffset
UIScrollview 中的 ContentOffset 问题
在 UIScrollView 子类中设置 contentOffset 的正确位置在哪里?