Ios UIScrollView缩放从UIImageView中删除变换

Ios UIScrollView缩放从UIImageView中删除变换,ios,objective-c,uiscrollview,uiimageview,rotation,Ios,Objective C,Uiscrollview,Uiimageview,Rotation,我有下面的代码,允许用户通过按下按钮来旋转屏幕上的图像 self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, rotationAmount); 此图像位于UIScrollView内部,用户可以通过该视图放大照片。问题在于,当用户缩放时,变换会被重置。我可以存储变换的值,然后在缩放后重新应用它,但图像似乎在旋转版本和非旋转版本之间反弹 有没有办法在缩放过程中保持变换 下面是scrollview的代

我有下面的代码,允许用户通过按下按钮来旋转屏幕上的图像

self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, rotationAmount);
此图像位于UIScrollView内部,用户可以通过该视图放大照片。问题在于,当用户缩放时,变换会被重置。我可以存储变换的值,然后在缩放后重新应用它,但图像似乎在旋转版本和非旋转版本之间反弹

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

下面是scrollview的代码

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)];
问题是,当用户缩放变换时,该变换会被重置

因为这就是缩放。它是对图像进行比例变换的应用。该缩放变换正在替换旋转变换

您可以尝试实现
zoom
delegate方法,以便在用户缩放时反复应用旋转变换。但请记住相对于缩放变换应用它,否则将失去缩放效果

问题是,当用户缩放变换时,该变换会被重置

因为这就是缩放。它是对图像进行比例变换的应用。该缩放变换正在替换旋转变换


您可以尝试实现
zoom
delegate方法,以便在用户缩放时反复应用旋转变换。但请记住将其应用于缩放变换,否则您将失去缩放效果。

我早就应该提出这个问题,而不仅仅是评论Matt的答案,对不起


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

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


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

你能在放大照片的地方张贴代码吗?你能在放大照片的地方张贴代码吗?是的,这完全正确。一个更简单的解决方法是另一个包装内容视图(或scrollView)的UIView,这样您就可以在不干扰scrollView实现的情况下应用自己的转换。如果您想在ScrollView及其子类的顶部添加手势识别器,则通常需要相同的解决方法…@Jef,wrapper是个好主意!是的,这完全正确。一个更简单的解决方法是另一个包装内容视图(或scrollView)的UIView,这样您就可以在不干扰scrollView实现的情况下应用自己的转换。如果您想在ScrollView及其子类的顶部添加手势识别器,则通常需要相同的解决方法…@Jef,wrapper是个好主意!