如何在Xcode 8中创建没有LaunchScreen的空应用程序

时间:2017-03-19 22:49:58

标签: ios objective-c iphone xcode

根据How to create an Empty Application in Xcode 6 without Storyboard的接受答案,我设法在Xcode 8中使用了一个空应用程序(在Objective-C中)。

这些是我采取的步骤:

  1. 文件>新>项目>单一视图应用程序
  2. 已删除Main.storyboard及其在info.plist中的引用("主要情节提要文件基本名称")
  3. 已删除LaunchScreen.storyboard及其在info.plist中的引用("启动屏幕界面文件基本名称")
  4. 位于" AppDelegate.m"的顶部。添加了导入语句#import "ViewController.h"
  5. 使用此代码编辑applicationDidFinishLaunchingWithOptions:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.window.rootViewController = [[ViewController alloc] init];
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
        return YES;
    }
    
  6. 如果我按照这些步骤操作,我的应用程序屏幕将不会占据模拟器的整个屏幕,但只占一部分。在@ tboyce12对已接受答案的评论后,我制作了第二个版本,其中我没有删除LaunchScreen.storyboard文件,因此应用程序最终占据了模拟器的整个屏幕。

    有没有办法以编程方式执行此操作?

1 个答案:

答案 0 :(得分:2)

在您的应用开始执行之前,会显示启动屏幕(无论是来自故事板还是静态启动图像);这是它的目的,在应用程序启动时显示某些内容。

因此,您无法以编程方式提供启动屏幕。

启动屏幕可以来自故事板,也可以提供启动图像。

如果您提供启动图像,则需要为各种设备类型(iPad,iPhone 3.5“,4”,4.7“,5.5”)提供适当尺寸的多个图像。

最初,iPhone只有一个3.5英寸的屏幕,许多应用程序都硬编码到这个屏幕的尺寸。当iPhone 5发布时带有4英寸屏幕,很有可能现有的应用程序很多“打破“因为他们对屏幕尺寸的假设。

为了向这些应用程序提供向后兼容性,iOS会检查应用是否提供4“启动图像(或使用启动故事板)。如果没有,则应用程序显示在3.5”'信箱中' 。当您删除发布故事板并且没有提供4“启动图像时,这就是您所看到的。

由于发布故事板可以使用autolayout自动适应设备屏幕大小,因此这是首选方法。