在 xcode 中旋转图像

Posted

技术标签:

【中文标题】在 xcode 中旋转图像【英文标题】:Rotate image in xcode 【发布时间】:2015-07-26 16:05:50 【问题描述】:

我正在尝试旋转我的图像,但不是 90 度或 180 度,我实际上不知道我想要旋转的量。如果我可以让旋转工作,我只是猜测并检查旋转量,但是我无法让图像旋转。我查找了许多与此类似的问题,它们都使用 M_PI 或类似的东西。我把它放在我的代码中,没有任何反应,图像永远不会旋转。有人可以帮我让图像旋转。

Box6 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"border.png"]];
Box6.center = CGPointMake(StickFigure.center.x + 22, StickFigure.center.y + 19);
Box6.transform = CGAffineTransformMakeRotation(M_PI/45);

M_PI/45 不是我使用的,我只是在搞乱数字,没有任何变化

【问题讨论】:

你能提供你使用的应该执行轮换的代码吗? @Aderis 我添加了代码 【参考方案1】:

函数CGAffineTransformMakeRotation() 以弧度为单位,如here in the docs 所示,因此通过M_PI/45,您总共旋转了2 度,您可能会误认为没有旋转。为了测试你的代码是否真的有效,我只输入M_PI,相当于 180 度。如果您使用度数并需要等效的弧度,请使用以下公式:radians = degrees * M_PI / 180

【讨论】:

好的,谢谢,这很有帮助,仅使用 M_PI,我无法看到差异,因为它是对称图像。我将如何旋转它,比如 45 度? 我会放 Box6.transform = CGAffineTransformMakeRotation(45 * M_PI/180); 它不起作用,盒子根本没有旋转,我把我评论中的确切代码行放在上面 @karateman10998 在这里冒险。您可以尝试使用view.layer.transform = CATransform3DMakeRotation(angleInRadians, 0.0, 0.0, 1.0);,而不是更改视图的转换属性。如果这不起作用,您可以尝试致电 [self setNeedsDisplay];。您正在更改视图的变换矩阵,但如果视图已被绘制,它可能不会被使用。做setNeedsDisplay 应该可以解决这个问题(如果这是问题的话)。 好吧,如果我使用CATransform3DMakeRotation,我会输入什么内容,对不起,这对我来说有点陌生

以上是关于在 xcode 中旋转图像的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中旋转 UIImage

旋转相机时显示黑色三角形的视图

XCode:调整图像大小使用纵横比并向下移动图像下方的元素

相机图像选择器控件 - iOS7 中的自动旋转

只有一个视图在 xcode 中自动旋转?

如何使用 Xcode 10 在 SceneKit 编辑器中旋转对象