在iOS6中使用自动布局进行旋转和缩放

在iOS6中使用自动布局进行旋转和缩放,ios,objective-c,rotation,scale,autolayout,Ios,Objective C,Rotation,Scale,Autolayout,这是一个问题,我已经有很长一段时间了。随着新的iOS6和自动布局,我的手势识别器“游戏”不再工作 我用故事板创建了一个应用程序,在其中一个选项卡上有一个小游戏应用程序,用户必须在5像素、5%大小和5度范围内缩放、旋转和平移另一个图像。自动布局的问题是,当旋转和缩放游戏图像时,图像“跳”回起始位置,笨拙地旋转,而不是围绕中心旋转 下面是我处理旋转和缩放手势的方法 旋转 //rotation gesture recognizer response - (void)respondToRotateGes

这是一个问题,我已经有很长一段时间了。随着新的iOS6和自动布局,我的手势识别器“游戏”不再工作

我用故事板创建了一个应用程序,在其中一个选项卡上有一个小游戏应用程序,用户必须在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);
    }
    if (gesture.state == UIGestureRecognizerStateEnded) [self didWin]; //not important for question
    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);
    }
    if (gesture.state == UIGestureRecognizerStateEnded) [self didWin]; //not important for question
    gesture.scale = 1;
}
我确实意识到,最简单的解决方案是关闭自动布局,但这会导致故事板的其余部分出现问题,因为在故事板中,不能为一个组件打开自动布局,但必须为整个故事板关闭自动布局

谁能告诉我该怎么办?我已经读到,这是一个主要问题,一些人称之为新的自动布局的“错误”

我只是有问题,我需要一些帮助

如果有人有任何建议或能给我指出正确的方向,我将不胜感激。谢谢


-Henry

最简单的方法是使用以下代码以编程方式创建图像以删除自动布局。由于苹果的自动布局“缺陷”,如果使用IB将图像添加到视图中,则无法设置
image.translatesAutoResizezingMaskintoConstraints=YES
。因为您将得到一个错误,即,“
无法同时满足约束”

因此,您需要以编程方式执行此操作,因为IB添加了约束,而您不需要任何约束

UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 100, 100)];
    image.image = [UIImage imageNamed:@"gorilla_red.png"];
    image.translatesAutoresizingMaskIntoConstraints = YES;
    [self.view addSubview:image];