1

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

#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 水平放置在屏幕的中心,并且它的锚点设置为中心,我希望两个方向的最大值都被屏幕边缘平均切断。相反,图像向右走得更远。

左效应(负): 左旋转

正确效果(正面): 右转

4

1 回答 1

0

看起来自动布局会随着图像视图的旋转和框架的变化而改变锚点。

于 2013-10-17T06:29:47.503 回答