ios 7을 지원하는 Landscape(가로) 어플리케이션을 제작할 때 고려할 사항
 Device Orientation만 Landscape로 설정하면 Landscape에서 시작하는 응용 프로그램을 만들 수 있습니다.당사그림책 응용 프로그램 PIBO(PIBO)에도 이러한 설정이 있으나ios7을 처리하기 전에 화면 사이즈를 확보하는 데 주의해야 합니다.
ios7의 주의점
・self.view.frame.크기 반환 세로 크기
・UIScreen.mainScreen().bounds도 세로 크기로 되돌아오기
・viewDidLoad 및 viewWillApper의 selfview.bounds.크기도 세로 크기로 되돌려줍니다
• Portrait에서 Landscape로 회전할 때 self.view.bounds.사이즈는 정확한 사이즈를 얻을 수 있습니다.
결론 ios7 이전에는 다음의 screenSize()를 사용하는 것이 좋습니다.
    func screenSize() -> CGSize {
        let screenSize = UIScreen.mainScreen().bounds.size
        if (NSFoundationVersionNumber <= NSFoundationVersionNumber_iOS_7_1) && UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication().statusBarOrientation) {
            return CGSizeMake(screenSize.height, screenSize.width)
        }
        return screenSize
    }
ios7과 ios8의 정시와 화면 사이즈가 다르다
ios7에서 가로로 시작할 때
* 위의 screenSize ()는 Correct screenSize ()입니다.
viewDidLoad
----------------
 frame                        w320.0 h:568.0
 bounds                       w320.0 h:568.0
 UIScreen.mainScreen().bounds w320.0 h:568.0
 Correct screenSize()         w568.0 h:320.0
----------------
viewWillAppear
----------------
 frame                        w320.0 h:568.0
 bounds                       w320.0 h:568.0
 UIScreen.mainScreen().bounds w320.0 h:568.0
 Correct screenSize()         w568.0 h:320.0
----------------
viewDidLayoutSubviews
----------------
 frame                        w320.0 h:568.0
 bounds                       w568.0 h:320.0
 UIScreen.mainScreen().bounds w320.0 h:568.0
 Correct screenSize()         w568.0 h:320.0
----------------
viewDidAppear
----------------
 frame                        w320.0 h:568.0
 bounds                       w568.0 h:320.0
 UIScreen.mainScreen().bounds w320.0 h:568.0
 Correct screenSize()         w568.0 h:320.0
----------------
ios8에서 가로로 시작할 때
viewDidLoad
----------------
 frame                        w568.0 h:320.0
 bounds                       w568.0 h:320.0
 UIScreen.mainScreen().bounds w568.0 h:320.0
 Correct screenSize()         w568.0 h:320.0
----------------
viewWillAppear
----------------
 frame                        w568.0 h:320.0
 bounds                       w568.0 h:320.0
 UIScreen.mainScreen().bounds w568.0 h:320.0
 Correct screenSize()         w568.0 h:320.0
----------------
viewDidLayoutSubviews
----------------
 frame                        w568.0 h:320.0
 bounds                       w568.0 h:320.0
 UIScreen.mainScreen().bounds w568.0 h:320.0
 Correct screenSize()         w568.0 h:320.0
----------------
viewDidAppear
----------------
 frame                        w568.0 h:320.0
 bounds                       w568.0 h:320.0
 UIScreen.mainScreen().bounds w568.0 h:320.0
 Correct screenSize()         w568.0 h:320.0
----------------
테스트 코드
다음 코드로 상술한 결과를 시도할 수 있습니다.
import UIKit
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        printSizes("viewDidLoad")
    }
    override func viewWillAppear(animated: Bool) {
        printSizes("viewWillAppear")
    }
    override func viewDidLayoutSubviews() {
        printSizes("viewDidLayoutSubviews")
    }
    override func viewDidAppear(animated: Bool) {
        printSizes("viewDidAppear")
    }
    override func didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation) {
        if UIDevice.currentDevice().orientation.isLandscape {
            printSizes("isLandscape")
        }else if UIDevice.currentDevice().orientation.isPortrait {
            printSizes("isPortrait")
        }
    }
    func printSizes(s: String){
        println(s)
        println("----------------")
        println(" frame                        w\(self.view.frame.width) h:\(self.view.frame.height)")
        println(" bounds                       w\(self.view.bounds.width) h:\(self.view.bounds.height)")
        println(" UIScreen.mainScreen().bounds w\(UIScreen.mainScreen().bounds.width) h:\(UIScreen.mainScreen().bounds.height)")
        println(" Correct screenSize()         w\(self.screenSize().width) h:\(self.screenSize().height)")
        println("----------------")
        println()
    }
    func screenSize() -> CGSize {
        let screenSize = UIScreen.mainScreen().bounds.size
        if (NSFoundationVersionNumber <= NSFoundationVersionNumber_iOS_7_1) && UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication().statusBarOrientation) {
            return CGSizeMake(screenSize.height, screenSize.width)
        }
        return screenSize
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}
                Reference
이 문제에 관하여(ios 7을 지원하는 Landscape(가로) 어플리케이션을 제작할 때 고려할 사항), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/osamu1203/items/9c2154123731b3bf629a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)