UIPanGestureRecognizer - 翻译和轮换不会均匀地发生负面和正面

时间:2013-10-16 05:12:36

标签: ios objective-c uipangesturerecognizer

在文件的顶部,我有这个:

#define DEGREES_TO_RADIANS(x) (M_PI * x / 180.0)

在viewdidload中我有这个:

imageView.layer.anchorPoint = CGPointMake(0.5,0.5);

然后终于在手势识别器中我有了这个:

- (IBAction)handlePan:(UIPanGestureRecognizer *)sender {
    CGPoint translation = [sender translationInView:self.view];
    xPos += translation.x;
    if(xPos > 150) xPos = 150;
    if(xPos < -150) xPos = -150;
    float rotate = 0;
    if(xPos >= 50) {
        rotate = (xPos - 50) * 0.025;
    } else if(xPos <= -50) {
        rotate = (xPos + 50) * 0.025;
    }
    imageView.transform = CGAffineTransformTranslate(CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(rotate)), (xPos * 0.35), 0);
}

这似乎对阴性(左)和阳性(右)应用完全相同的效果。

正在旋转的UIImageView水平放置在屏幕中央,并且其锚点设置在中心,我希望两个方向上的最大值可以被屏幕边缘平均切断。相反,图像向右移动得更远。

左效果(负面): Left Rotation

正确的效果(正面): Right Rotation

1 个答案:

答案 0 :(得分:0)

看起来autolayout会在图像视图旋转并且帧发生变化时更改定位点。