알림 센터를 사용합니다.
방향 변수 추가 (마지막에 설명)
//Above viewdidload
var orientations:UIInterfaceOrientation = UIApplication.sharedApplication().statusBarOrientation
보기가 나타날 때 알림 추가
override func viewDidAppear(animated: Bool) {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "orientationChanged:", name: UIDeviceOrientationDidChangeNotification, object: nil)
}
보기가 사라질 때 알림 제거
override func viewWillDisappear(animated: Bool) {
NSNotificationCenter.defaultCenter().removeObserver(self, name: UIDeviceOrientationDidChangeNotification, object: nil)
}
알림이 트리거 될 때 현재 방향을 가져옵니다.
func orientationChanged (notification: NSNotification) {
adjustViewsForOrientation(UIApplication.sharedApplication().statusBarOrientation)
}
방향 (세로 / 가로) 확인 및 이벤트 처리
func adjustViewsForOrientation(orientation: UIInterfaceOrientation) {
if (orientation == UIInterfaceOrientation.Portrait || orientation == UIInterfaceOrientation.PortraitUpsideDown)
{
if(orientation != orientations) {
println("Portrait")
//Do Rotation stuff here
orientations = orientation
}
}
else if (orientation == UIInterfaceOrientation.LandscapeLeft || orientation == UIInterfaceOrientation.LandscapeRight)
{
if(orientation != orientations) {
println("Landscape")
//Do Rotation stuff here
orientations = orientation
}
}
}
방향 변수를 추가하는 이유는 물리적 장치에서 테스트 할 때 방향 알림이 회전 할 때뿐만 아니라 장치의 모든 사소한 움직임에서 호출되기 때문입니다. var 및 if 문을 추가하면 반대 방향으로 전환 된 경우에만 코드가 호출됩니다.
UIViewController
. "View Rotations 처리"섹션을 참조하십시오. 수행해야 할 작업에 대해 설명합니다.