我有以下代码,允许用户通过按下按钮在屏幕上旋转图像。
void (DerivedType::*)(call_status_s*)
此图像位于UIScrollView内部,使用户可以放大照片。问题是当用户缩放时,重置变换。我可以存储变换的值,然后在缩放后重新应用它,但图像看起来好像是在旋转版本和非旋转版本之间反弹。
有没有办法在缩放过程中保持变换?
以下是scrollview的代码
self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, rotationAmount);
答案 0 :(得分:3)
问题是当用户缩放时,重置转换
因为是缩放的。它是对图像应用缩放变换。该比例变换正在取代您的旋转变换。
您可以尝试实施zoom
委托方法,以便在用户缩放时反复重新应用旋转变换。但请记住相对于比例变换应用它,否则您将失去缩放。
答案 1 :(得分:2)
我应该在很久以前提出这个问题,而不是仅仅评论马特的答案,对不起。
正如Matt所说,UIScrollView通过操纵其内容视图的transform属性来实现它的魔力(缩放和平移)。如果您尝试在同一个UIView上操作transform属性,那么您将破坏scrollView的工作。您需要在视图层次结构中的不同级别应用旋转,请考虑旋转scrollView本身。最好