mee*_*tpd 12 iphone cocoa-touch objective-c uiview ios
如何以编程方式在我的iPhone应用程序中将视图旋转180度?
Ben*_*ayo 32
由于'CGAffineTransformRotate'使用弧度作为度量单位,180度与PI相同,而不是其他答案中提供的数学,您可以简单地做:
view.transform = CGAffineTransformRotate(view.transform, M_PI);
Run Code Online (Sandbox Code Playgroud)
斯威夫特3:
view.transform = view.transform.rotated(by: .pi)
Run Code Online (Sandbox Code Playgroud)
如果您计划进行大量的变换,最好是阅读弧度,这样您就可以了解正在发生的事情.
Man*_*nny 13
应该可以使用CGAffineTransform
从这个问题引用,这应该做的伎俩:
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;
Run Code Online (Sandbox Code Playgroud)
简单方案:
view.transform = CGAffineTransformMakeRotation(degrees*M_PI/180);
Run Code Online (Sandbox Code Playgroud)
斯威夫特 4:
self.view.transform = CGAffineTransform(rotationAngle: .pi);
Run Code Online (Sandbox Code Playgroud)
以及Benjamin Mayo或vtcajones回答的评论(我显然没有足够的分数来输入我对他/她的回答的评论):
view.transform = view.transform.rotated(by: .pi)
Run Code Online (Sandbox Code Playgroud)
这将在第一次起作用,但下次调用它时会再次旋转视图,回到原始旋转,这可能不是您想要的。每次都准确设置转换值会更安全。
在 Swift 3 中:
let rotationDegrees = 180.0
let rotationAngle = CGFloat(rotationDegrees * M_PI / 180.0)
view.transform = CGAffineTransform(rotationAngle: rotationAngle)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12767 次 |
| 最近记录: |