我有一个UIScrollView包含一个图像和一个分段控件,允许用户切换ScrollView内部的图像。如果我只是在UIImageView内部交换图像,它将以放大状态显示新图像。如何将UIScrollView重置回其未放大状态?如何重置(即取消缩放)UIScrollView?
回答
我有详细的讨论如何(以及为什么)UIScrollView缩放工作在github.com/andreyvit/ScrollingMadness/。
(该链接还包含了如何编程方式放大UIScrollView的描述,如何效仿图片库式传呼+变焦+滚动,实例项目和ZoomScrollView类,封装了一些变焦魔法。)
Quote:
UIScrollView没有“当前缩放级别”的概念,因为它包含的每个子视图可能有其自己的当前缩放级别。请注意,UIScrollView中没有字段保持当前缩放级别。但是我们知道有人存储缩放级别,因为如果捏住缩放子视图,然后将其转换重置为CGAffineTransformIdentity,然后再次捏住,则您会注意到子视图的前一缩放级别已恢复。事实上,如果你看看反汇编,它是UIView存储它自己的缩放级别(在_gestureInfo字段指向的UIGestureInfo对象内部)。它还有一套很好的无证方法,如zoomScale
和setZoomScale:animated:
。 (请注意,它也有一些旋转相关的方法,也许我们很快就会得到旋转手势支持。)
但是,如果我们创建一个新的UIView,只是为了缩放并添加我们真正的可缩放视图为它的孩子,我们将始终从缩放级别1.0开始。我的程序缩放实现是基于这个技巧。
如果您在完成缩放缩放事件时未重绘视图,则缩放因子将由您从viewForZoomingInScrollView:delegate方法返回的视图的transform属性设置。要重置此缩放,请将视图的transform属性值设置为CGAffineTransformIdentity。
但是,请注意,您的下一个缩放操作将在先前的缩放缩放停止的位置开始(即您的新缩放将被忽略)。要解决此问题,您可能需要执行一些我描述的内容here。
- 1. UIScrollView并取消缩放缩放手势
- 2. 如何在UIScrollView缩放后重置?
- 3. 启用UIScrollView缩放重置缩放视图转换的缩放
- 4. 如何跟踪缩放UIScrollView?
- 5. UIScrollView不缩放
- 6. UIScrollView +缩放+滑动
- 7. UIScrollView没有缩放
- 8. UIImageView和UIScrollView缩放
- 9. UILabel缩放与UIScrollView
- 10. 如何取消缩放Chrome- *控制台
- 11. 如何缩放UIScrollView的特定部分?
- 12. 如何在滚动时缩放UIScrollView
- 13. 当滚动结束时重置嵌套的uiscrollview缩放
- 14. iPhone:我如何重绘子视图,但缩放uiscrollview
- 15. 缩放uiscrollview包含另一个uiscrollview
- 16. UIScrollView - 缩放问题(在任何缩放后切断UIScrollView内部的UIView底部)
- 17. OpenGL:如何撤消缩放?
- 18. UIScrollView内容不缩放
- 19. UVIews缩放比例UIScrollview
- 20. UIScrollView子视图缩放
- 21. 的UIScrollView缩放动画
- 22. UIScrollView缩放和GUI管理
- 23. uiscrollview多视图缩放
- 24. UIScrollView缩放问题与UIRotationGestureRecognizer
- 25. UIScrollview缩放实现无InterfaceBuilder
- 26. 在UIScrollView中缩放UIImage
- 27. UIScrollView旋转后缩放
- 28. UIScrollview缩放刷新内容
- 29. 禁用手动缩放UIScrollView
- 30. 添加缩放到UIScrollView
所以当我切换图像时,我在做以下操作: \t imageView.transform = CGAffineTransformIdentity; 这是你的意思吗?因为它似乎没有影响它。 – Bdebeez 2009-03-04 21:28:13
你如何切换图像?您的内容是否为您的UIScrollView查看UIImageView?这个UIImageView是什么,然后你从viewForZoomingInScrollView返回:?这应该适用于滚动视图的主要子视图。 – 2009-03-05 00:49:27