当我的设备处于纵向或横向模式时,如何旋转按钮?我知道这样的事情:
button.transform = CGAffineTransformMakeRotation(CGFloat(M_PI))
但是我必须在我的代码中调用它? 我不想将我的设备设置为横向模式,我只想在横向模式下旋转图标 提前谢谢!
答案 0 :(得分:1)
执行此操作的最佳方法是viewDidLoad
在下面添加以下代码行:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(rotate), name: UIDeviceOrientationDidChangeNotification, object: nil)
然后在函数旋转中,在设备方向的情况下做一些像这样的代码:
func rotate(){
if UIDeviceOrientationIsLandscape(UIDevice.currentDevice().orientation) {
//your code here in landscape mode
}
if UIDeviceOrientationIsPortrait(UIDevice.currentDevice().orientation){
//your code in portrait mode
}
}
这个解决方案简单易行。
答案 1 :(得分:0)
你应该覆盖func
viewWillTransitionToSize(_ size: CGSize, withTransitionCoordinator coordinator:UIViewControllerTransitionCoordinator)
并在那里调用转换
旋转后不要忘记指定CGAffineTransformIdentity
答案 2 :(得分:0)
我想你知道如何"旋转"按钮已经,所以我只是告诉你如何知道设备已经旋转。
在视图控制器中,覆盖willRotateToInterfaceOrientation
:
override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
}
在方法正文中,您可以检查toInterfaceOrientation
的值以了解设备正在旋转的方向。例如:
switch toInterfaceOrientation {
case Portrait:
// some code here...
default:
break
}