我有一个问题,这让我感到很头疼'并希望有人可以帮助我。
我有一个带有子UIImageView的UIView,它包含一个图像。
使用手势,我可以平移,缩放和旋转该图像。在此过程期间,锚点可以改变以确保缩放/旋转是手势的两个手指之间的点。 CGAffineTransforms用于实现这一点并且运行良好。
当我销毁并重新创建封闭的视图控制器时,我的问题是存储和重新创建变换。
当我离开那个视图时,我存储了变换和帧......
-(CGAffineTransform)imageViewTransform
{
return self.testImageView.transform;
}
-(CGRect)imageViewFrame
{
return self.testImageView.frame;
}
....当我重新创建该视图时,我设置了我的imageView的框架和变换......
self.imageView.transform = mySavedTransform;
self.imageView.frame = mySavedFrame;
这有效,我可以移动和拉伸我的图像,然后再次重新创建。
然而,如果我旋转我的图像,重新创建的图像框架的角度正确但是被拉伸而不是原始坐标,所以我不能得到我保存的内容。
在变换之前设置帧对旋转具有相同的不良影响。
我的问题是为什么我不能使用上述技术重新创建精确缩放,旋转和定位的UIImageView?
当然,再现帧和变换会产生预期的效果吗?
这是通常的做法,还是我错过了什么?
任何帮助表示感谢。
答案 0 :(得分:1)
对于那些兴趣,这是有分类的。
问题是没有存储的锚点,以及使用中心来重新创建图像。因此,为了忠实地再现转换,您似乎需要存储中心,转换和锚定。
HTH