Iphone UIRotationGestureRecognitor的UIScrollView缩放问题
我有一个显示图像视图的滚动视图。我正在尝试在图像视图上处理UIRotationGestureRecognitor。我获取旋转事件,并对其应用所需的变换。图像在滚动视图中正确旋转。然后,当我在滚动视图中执行任何操作(如缩放或平移)时,图像旋转和位置会发生变化 _mainView是UIScrollView的子视图,它也用于缩放Iphone UIRotationGestureRecognitor的UIScrollView缩放问题,iphone,ios,rotation,scrollview,Iphone,Ios,Rotation,Scrollview,我有一个显示图像视图的滚动视图。我正在尝试在图像视图上处理UIRotationGestureRecognitor。我获取旋转事件,并对其应用所需的变换。图像在滚动视图中正确旋转。然后,当我在滚动视图中执行任何操作(如缩放或平移)时,图像旋转和位置会发生变化 _mainView是UIScrollView的子视图,它也用于缩放 UIRotationGestureRecognizer *rotationGesture=[[UIRotationGestureRecognizer alloc] initW
UIRotationGestureRecognizer *rotationGesture=[[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationGesture:)];
[_mainView addGestureRecognizer:rotationGesture];
[rotationGesture release];
-(void) rotationGesture:(UIRotationGestureRecognizer *) sender {
if(sender.state == UIGestureRecognizerStateBegan ||
sender.state == UIGestureRecognizerStateChanged)
{
sender.view.transform = CGAffineTransformRotate(sender.view.transform,
sender.rotation);
_currRotation = _currRotation + sender.rotation;
[sender setRotation:0];
}
}
我想了解在滚动视图中处理旋转的正确方法是什么,它甚至在滚动视图中的缩放事件之后也会保持旋转。在UIgestureRecognitizerDelegate中实现该方法,并同时返回所有要识别的手势。如果您仍然有问题,请查看的答案
祝你好运
编辑:您的评论让我猜测问题在于一次只能打开一个变换,而滚动视图应用缩放变换,取代旋转变换。您可以删除本机缩放识别器(请参见),或在滚动视图中嵌套另一个UIView,并对其应用旋转变换。我喜欢选项二,它似乎更容易。如果使用选项一,请使用CGAffineTransformConcat分别应用缩放和旋转变换。谢谢,我已经添加了相同的变换。问题不在于手势识别器。主要的问题是,一旦旋转发生,如果我滚动或缩放,旋转就会发生,并且图像在滚动视图中不再正确对齐