gpt4 book ai didi

iphone - UIScrollView 与 UIRotationGestureRecognizer 的缩放问题

转载 作者:行者123 更新时间:2023-12-03 21:18:18 25 4
gpt4 key购买 nike

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

_mainView是UIScrollView的子View,也用于缩放

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];
}
}

我想了解在 ScrollView 中处理旋转的正确方法是什么,并且即使在 ScrollView 中的缩放事件之后它也能保持旋转。

最佳答案

实现gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:方法,并返回您想要同时识别的所有手势。如果您仍然遇到问题,请查看 UIImageView Gestures (Zoom, Rotate) Question 的答案。

祝你好运!

编辑:您的评论让我猜测问题是您一次只能进行一种变换,并且 ScrollView 应用缩放变换,取代旋转变换。您可以删除 native 缩放识别器(请参阅 this question ),或在 ScrollView 中嵌套另一个 UIView,然后对其应用旋转变换。我喜欢选项二,看起来更容易。如果您选择选项一,请使用 CGAffineTransformConcat 独立应用缩放和旋转变换。

关于iphone - UIScrollView 与 UIRotationGestureRecognizer 的缩放问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8166037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com