iPhone6/6Plusが出るまではiPhoneの画面サイズが2つしかなくアプリ開発が簡単だった!
なのに今は…4つ!(多すぎる!)これは、iPhoneアプリ開発で厄介な問題の1つですよね。
AutoLayoutを使って様々な画面サイズに対応させていく方法がありますが、AutoLayoutは結構癖がある!
というわけで、「Storyboardを端末ごとに変更する」方法を紹介します。
前準備
TARGET>アプリ>General>Deployment Info>Main Interface
ここを空白にする
コード
- DelegateでiPhoneの画面サイズを取得する
- 条件分岐で画面サイズごとに変数にSyoryboardのIDを割り当てる
- ルートにViewを引っ掛ける
デフォルトでdidFinishLaunch…..はあると思うのでご注意を!
var navigationController: UINavigationController? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { var ID : String = "Default" let screen:CGSize = UIScreen.mainScreen().bounds.size switch screen.height{ case 480.0:ID = "iPhone3_5";break case 568.0:ID = "iPhone4";break case 736.0:ID = "iPhone5_5";break default:break } var SB: UIStoryboard = UIStoryboard(name: ID, bundle: NSBundle.mainBundle()) var MVC: UIViewController = SB.instantiateInitialViewController() as! UIViewController self.window = UIWindow(frame: UIScreen.mainScreen().bounds) self.navigationController = UINavigationController(rootViewController: MVC) self.window?.rootViewController = navigationController self.window?.makeKeyAndVisible() return true }
これでAutoLayoutを使わなくても画面サイズに対応できます。
お役に立てれば幸いです!
コメントを残す