當我的設備處於縱向或橫向模式時,如何才能旋轉按鈕?我知道這樣的事情:如何在設備方向快速變化時旋轉按鈕?
button.transform = CGAffineTransformMakeRotation(CGFloat(M_PI))
但是,我必須在我的代碼中調用它?
我不想在橫向模式下設置我的設備,我只是想在圖標處於橫向模式時旋轉圖標。
在此先感謝!
當我的設備處於縱向或橫向模式時,如何才能旋轉按鈕?我知道這樣的事情:如何在設備方向快速變化時旋轉按鈕?
button.transform = CGAffineTransformMakeRotation(CGFloat(M_PI))
但是,我必須在我的代碼中調用它?
我不想在橫向模式下設置我的設備,我只是想在圖標處於橫向模式時旋轉圖標。
在此先感謝!
您應該重寫FUNC
viewWillTransitionToSize(_ size: CGSize, withTransitionCoordinator coordinator:UIViewControllerTransitionCoordinator)
,並調用轉換還有
旋轉回來時
更多關於旋轉不要忘記分配CGAffineTransformIdentity
:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIContentContainer_Ref/index.html#//apple_ref/occ/intfm/UIContentContainer/viewWillTransitionToSize:withTransitionCoordinator:
的最佳方式要做到這一點是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
}
}
這個解決方案很簡單,真的很容易做到。
我猜你知道如何「旋轉」按鈕,所以我只是告訴你如何知道設備已經旋轉。
在一個視圖控制器,重寫willRotateToInterfaceOrientation
:
override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
}
在該方法體,可以檢查的toInterfaceOrientation
值知道設備旋轉到哪個方向。例如:
switch toInterfaceOrientation {
case Portrait:
// some code here...
default:
break
}
檢查此鏈接http://stackoverflow.com/questions/25666269/ios8-swift-how-to-detect-orientation-change –