やりたいこと
iPhoneの画面比率を維持した状態でiPadにiPhoneアプリライクに表示させたい。
やってみた
iPadのサイズを変更しようとしたら結構はまりました。
UIViewControllerの中で再設定するのかとか、window.rootViewControllerに設定するのかとか。
そもそも、rootViewControllerってなんだっけとか。
色々やってみたところ、UIViewControllerよりも上位にいるUIWindowに対してサイズ設定すればいい感じになりました。
AppDelegate.swift
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
// 比率計算する
// サイズを変更する
window?.clipsToBounds = true
window?.frame = CGRectMake(100, 0, 500, 1200) // x, y, width, height
window?.bounds = CGRectMake(0, 0, 500, 1200)
}
AutoLayoutでSizeClassを使っていい感じにできることならしたかった。
あとは、UIWindowなんて変えてしまってリジェクトされるかどうかが気になりましたが、
readonlyではなく、変更できるので問題ない気がしています。
参考にしたサイト
UIWindow.rootViewControllerって?
self.window not working inside view controller
2016.3.26追記
上記の対応でApple審査へ通したところ、1回目の審査はオッケーでしたが、2回目で厳しい審査のチームに当たったらしくリジェクトされました。
各々のデバイスにちゃんと合った画面を作らないといけないそうです。ハードル高い。。