如何以编程方式在我的iPhone App中将视图旋转180度?
答案 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)
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)