UIScrollView 缩放从 UIImageView 移除变换

Chr*_*ver 1 objective-c rotation uiscrollview uiimageview ios

我有以下代码,允许用户通过按下按钮在屏幕上旋转图像。

self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, rotationAmount);
Run Code Online (Sandbox Code Playgroud)

此图像位于 UIScrollView 内,使用户可以放大照片。问题是当用户缩放时,变换会被重置。我可以存储变换的值,然后在缩放后重新应用它,但图像看起来好像在旋转版本和非旋转版本之间弹跳。

有没有办法在缩放过程中保持变换?

这是滚动视图的代码

self.scrollView.minimumZoomScale=1.0;
self.scrollView.maximumZoomScale=6.0;
self.scrollView.contentSize=CGSizeMake(screenHeight, screenWidth-toolBarHeight);
self.scrollView.delegate=self;
[_scrollView setContentMode:UIViewContentModeScaleAspectFit];
[_scrollView sizeToFit];
[_scrollView setContentSize:CGSizeMake(_imageView.frame.size.width, _imageView.frame.size.height)];
Run Code Online (Sandbox Code Playgroud)

Jef*_*Jef 5

对不起,我早就应该把这个提出来,而不是仅仅评论马特的回答。

正如 Matt 所暗示的,UIScrollView 通过操纵其内容视图的变换属性来发挥它的魔力(缩放和平移)。如果您尝试在同一个 UIView 上操作 transform 属性,那么您将破坏 scrollView 的努力。您需要在视图层次结构中的不同级别应用旋转,请考虑旋转 scrollView 本身。最好的事物