Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIRotationGestureRecognitor的UIScrollView缩放问题_Iphone_Ios_Rotation_Scrollview - Fatal编程技术网

Iphone UIRotationGestureRecognitor的UIScrollView缩放问题

Iphone UIRotationGestureRecognitor的UIScrollView缩放问题,iphone,ios,rotation,scrollview,Iphone,Ios,Rotation,Scrollview,我有一个显示图像视图的滚动视图。我正在尝试在图像视图上处理UIRotationGestureRecognitor。我获取旋转事件,并对其应用所需的变换。图像在滚动视图中正确旋转。然后,当我在滚动视图中执行任何操作(如缩放或平移)时,图像旋转和位置会发生变化 _mainView是UIScrollView的子视图,它也用于缩放 UIRotationGestureRecognizer *rotationGesture=[[UIRotationGestureRecognizer alloc] initW

我有一个显示图像视图的滚动视图。我正在尝试在图像视图上处理UIRotationGestureRecognitor。我获取旋转事件,并对其应用所需的变换。图像在滚动视图中正确旋转。然后,当我在滚动视图中执行任何操作(如缩放或平移)时,图像旋转和位置会发生变化

_mainView是UIScrollView的子视图,它也用于缩放

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分别应用缩放和旋转变换。

谢谢,我已经添加了相同的变换。问题不在于手势识别器。主要的问题是,一旦旋转发生,如果我滚动或缩放,旋转就会发生,并且图像在滚动视图中不再正确对齐