旋转和缩放将图像带回到起始位置

时间:2013-06-18 21:44:46

标签: ios objective-c rotation scale gestures

我目前正在设计一个小游戏作为学习项目,它基本上如下,一个图像在viewDidLoad上旋转和缩放,另一个图像是原始图像的直接副本。

所以基本上有一个图像与另一个图像略有不同,目标是将其缩小,旋转并在另一个图像的顶部移动5像素,5度旋转和5%规模。

我的问题是,当我运行旋转和缩放方法时,图像会跳回到它的起始位置。

我的两种方法如下。

旋转

//rotation gesture recognizer response
- (void)respondToRotateGesture:(UIRotationGestureRecognizer *)gesture {
    if (gesture.state == UIGestureRecognizerStateBegan || gesture.state == UIGestureRecognizerStateChanged) {
        image.transform = CGAffineTransformRotate(gesture.view.transform, gesture.rotation);
    }
    gesture.rotation = 0;
}

比例

//pinch gesture recognizer
- (void)respondToPinchGesture:(UIPinchGestureRecognizer *)gesture {
    if (gesture.state == UIGestureRecognizerStateBegan || gesture.state == UIGestureRecognizerStateChanged) {
            image.transform = CGAffineTransformScale(image.transform, gesture.scale, gesture.scale);
    }
    gesture.scale = 1;
}

我试图理解为什么当我尝试旋转和缩放时,它不会围绕图像的中心旋转或从图像的中心缩放。它从左上角旋转并且所有奇怪的缩放。当我捏合图像缩小时,它会跳回到屏幕左下角的起始位置。

我有一个平移手势来移动图像并且工作正常,但是这两个问题导致了我的问题并且不顺畅。

有谁知道如何使这些工作更顺畅或建议?

0 个答案:

没有答案