【发布时间】:2017-09-17 07:31:18
【问题描述】:
我有一个带有照片库查看器的应用。在应用程序中,您可以选择一张照片并使用手势缩放和平移照片。我通过更改包含照片的 UIImageView 的仿射变换来做到这一点。该应用程序还支持更改手机方向。在某些情况下,UIImageView 在方向变化时的框架计算似乎是错误的。以下一般会导致帧大小计算错误。
- 使用身份转换设置 UIImageView
- 设置视图变换,以便我们围绕捏合手势进行缩放
- 将手机从纵向旋转到横向
- 对视图应用新的变换以围绕图像中的不同点进行缩放
- 将手机从横向旋转到纵向
- 将转换设置回身份
在此之后,UIImageView 框架与原来的不同,因此图像看起来被缩放了。
UIImageView 的自动调整大小标志是 .flexibleWidth 和 .flexibleHeight。我可以做些什么来避免这种情况。看起来 LayoutSubviews 不能很好地处理缩放的 UIViews。我尝试在 viewWillLayoutSubviews() 中删除比例并在 viewDidLayoutSubviews() 中重新应用,但这没有帮助。
【问题讨论】:
标签: ios iphone uiimageview autolayout uiinterfaceorientation