gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 19:09:41 25 4
gpt4 key购买 nike

这是我长期以来一直存在的问题。使用新的 iOS6 和自动布局,我的手势识别器“游戏”不再工作。

我使用 Storyboard 创建了一个应用程序,其中一个选项卡上有一个小游戏应用程序,用户必须在 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;
}

我确实意识到最简单的解决方案是关闭自动布局,但这会导致 Storyboard 的其余部分出现问题,因为在 Storyboard 中您不能为一个组件关闭自动布局,但您必须为整个 Storyboard 关闭它。

谁能建议我该怎么做?我已经读到这是一个主要问题,有些人称它为新自动布局的“错误”。

我只是遇到了这个问题,我需要一些帮助

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

-亨利

最佳答案

解决此问题的最简单方法是使用以下代码以编程方式创建图像以删除自动布局。由于您无法设置image.translatesAutoresizingMaskIntoConstraints = YES如果您使用 IB 将图像添加到 View 中,因为苹果“错误”具有自动布局。因为您会收到一条错误消息,“Unable to simultaneously satisfy constraints

因此,您需要以编程方式执行此操作,因为 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];

关于ios - 在 iOS6 中使用自动布局进行旋转和缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17220570/

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