如何在iOS上以编程方式将视图旋转180度?

时间:2011-07-25 09:12:51

标签: ios objective-c iphone cocoa-touch uiview

如何以编程方式在我的iPhone App中将视图旋转180度?

7 个答案:

答案 0 :(得分:30)

由于'CGAffineTransformRotate'使用弧度作为度量单位,180度与PI相同,而不是其他答案中提供的数学,您可以简单地做:

view.transform = CGAffineTransformRotate(view.transform, M_PI);

斯威夫特3:

view.transform = view.transform.rotated(by: .pi)

如果您计划进行大量的变换,最好是阅读弧度,以便了解正在发生的事情。

答案 1 :(得分:12)

应该可以使用CGAffineTransform

this question引用,这应该可以解决问题:

CGFloat radians = atan2f(yourView.transform.b, yourView.transform.a);
CGFloat degrees = radians * (180 / M_PI);
CGAffineTransform transform = CGAffineTransformMakeRotation((90 + degrees) * M_PI/180);
yourView.transform = transform;

答案 2 :(得分:6)

简单的解决方案:

view.transform = CGAffineTransformMakeRotation(degrees*M_PI/180);

答案 3 :(得分:4)

与@ Manny使用不同功能的答案相同。

 CGFloat degreesOfRotation = 180.0;
 view.transform = CGAffineTransformRotate(view.transform,
     degreesOfRotation * M_PI/180.0);

答案 4 :(得分:4)

在Swift 3中:

let rotationDegrees =  180.0
let rotationAngle = CGFloat(rotationDegrees * M_PI / 180.0)
view.transform = CGAffineTransform(rotationAngle: rotationAngle)

答案 5 :(得分:3)

斯威夫特4:

self.view.transform = CGAffineTransform(rotationAngle: .pi);

对于 Benjamin Mayo vtcajones 的回答:

(我显然没有足够的观点对我/她的答案进行评论)

view.transform = view.transform.rotated(by: .pi)

这将是第一次使用,但是下次调用时它会再次旋转视图,回到原始旋转,这可能不是你想要的。每次都精确设置变换值会更安全。

答案 6 :(得分:0)

最新的Swift 3语法:

view.transform = view.transform.rotated(by: .pi)