根据How to create an Empty Application in Xcode 6 without Storyboard的接受答案,我设法在Xcode 8中使用了一个空应用程序(在Objective-C中)。
这些是我采取的步骤:
Main.storyboard
及其在info.plist
中的引用("主要情节提要文件基本名称")LaunchScreen.storyboard
及其在info.plist
中的引用("启动屏幕界面文件基本名称")#import "ViewController.h"
使用此代码编辑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;
}
如果我按照这些步骤操作,我的应用程序屏幕将不会占据模拟器的整个屏幕,但只占一部分。在@ tboyce12对已接受答案的评论后,我制作了第二个版本,其中我没有删除LaunchScreen.storyboard文件,因此应用程序最终占据了模拟器的整个屏幕。
有没有办法以编程方式执行此操作?
答案 0 :(得分:2)
在您的应用开始执行之前,会显示启动屏幕(无论是来自故事板还是静态启动图像);这是它的目的,在应用程序启动时显示某些内容。
因此,您无法以编程方式提供启动屏幕。
启动屏幕可以来自故事板,也可以提供启动图像。
如果您提供启动图像,则需要为各种设备类型(iPad,iPhone 3.5“,4”,4.7“,5.5”)提供适当尺寸的多个图像。
最初,iPhone只有一个3.5英寸的屏幕,许多应用程序都硬编码到这个屏幕的尺寸。当iPhone 5发布时带有4英寸屏幕,很有可能现有的应用程序很多“打破“因为他们对屏幕尺寸的假设。
为了向这些应用程序提供向后兼容性,iOS会检查应用是否提供4“启动图像(或使用启动故事板)。如果没有,则应用程序显示在3.5”'信箱中' 。当您删除发布故事板并且没有提供4“启动图像时,这就是您所看到的。
由于发布故事板可以使用autolayout自动适应设备屏幕大小,因此这是首选方法。