我正在学习如何在没有Interface Builder的情况下创建iOS应用程序(即故事板,xib等)。下面是我正在使用的基本应用程序委托类。问题是,当显示时UIWindow
没有用完设备的全屏(参见附件截图)。这发生在我测试的所有设备和模拟器上。为什么不使用全屏?
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
lazy var window: UIWindow? = {
debugPrint("AppDelegate: Creating Window")
let screen: UIScreen = UIScreen.mainScreen()
let window: UIWindow = UIWindow.init(frame: screen.bounds)
window.backgroundColor = UIColor.whiteColor()
return window
}()
lazy var rootViewController: ShapesViewController = {
debugPrint("AppDelegate: Creating Root View Controller")
let rootViewController = ShapesViewController.init(nibName: nil, bundle: nil)
return rootViewController
}()
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
debugPrint("AppDelegate: applicationWillEnterForeground")
window?.rootViewController = rootViewController
window?.makeKeyAndVisible()
return true
}
}
答案 0 :(得分:8)
问题原因是我没有发布图片或故事板。出于某种原因没有这个,应用程序默认为3.5"尺寸。感谢此评论:A launch storyboard or xib must be provided unless the app requires full screen
答案 1 :(得分:1)
这对我来说总是有用的(虽然我没有看到任何明显的区别)。你介意分享你的ShapesViewController代码吗?
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window?.rootViewController = ViewController()
window?.makeKeyAndVisible()
return true
}
答案 2 :(得分:0)
我知道听起来很傻但是...... 对于一个新的项目,macinjosh说的是有效的。 对于我在Xcode 8和swift 3中的项目,它没有(可能是因为我删除了启动屏幕并且不得不再次创建)。 刚创建新项目,并遵循macinjosh所说的。然后重新迁移所有文件。