[iOS]Xcode11的部分改变

更新Xcode11.1后,写demo时发现这个版本开发工具有了一些改变. 默认创建了SceneDelegate, info字典中也添加了"Application Scene Manifest", AppDelegate中也多了两个方法. 并且,AppDelegate默认没有声明"window"属性, 运行时会报错"The app delegate must implement the window property if it wants to use a main storyboard file", 给他将"window"属性加上就没了报错.
1.
搜索得知SceneDelegate是iPadOS用来做多窗口支持的,我暂时用不到, 将更新这些东西统统删掉就回到了以前的Xcode版本.
[iOS]Xcode11的部分改变_第1张图片
[iOS]Xcode11的部分改变_第2张图片

2.
不习惯使用LaunchScreen.storyboard, 顺手就将它删掉,然后发现Xcode已经不一样,App Icons and Launch Images中没有了"Launch Images Source".
顺便记一下,Deployment Info中的"Hide status bar"是用来设置是否隐藏启动页中状态栏的.
[iOS]Xcode11的部分改变_第3张图片
原来的这里是这个样子:
[iOS]Xcode11的部分改变_第4张图片
不设置"Launch Screen File"时,运行应用程序会发现启动页是黑屏,去Assets中添加了"LaunchImage"后运行得到的启动页仍然是黑屏. 同时,还发现首页的顶端和底端会有黑边,这都是同一个问题引起的.
[iOS]Xcode11的部分改变_第5张图片
这时,可以去Build Settings中搜索"Launch Image",设置Asset Catalog Launch Image Set Name为"LaunchImage"就可以解决启动页黑屏的问题了.
[iOS]Xcode11的部分改变_第6张图片
[iOS]Xcode11的部分改变_第7张图片
这样处理只是权宜之计, 大佬的中有写到
"
LaunchImage 被弃用
iOS 8 之前我们是在LaunchImage 来设置启动图,每当苹果推出新的屏幕尺寸的设备,我们需要 assets 里面放入对应的尺寸的启动图,这是非常繁琐的一个步骤。因此在 iOS 8 苹果引入了 LaunchScreen,可以直接在 Storyboard 上设置启动界面样式,可以很方便适配各种屏幕。

需要注意的是,苹果在 Modernizing Your UI for iOS 13   section 中提到 ,从2020年4月开始,所有支持 iOS 13 的 App 必须提供 LaunchScreen.storyboard,否则将无法提交到 App Store 进行审批。

[iOS]Xcode11的部分改变_第8张图片

解决方案
使用 LaunchScreen.storyboard 设置启动页,弃用 LaunchImage
"
3.
不喜欢使用Main.storyboard也将其删掉, 再删掉info表中的"Main storyboard file base name"
[iOS]Xcode11的部分改变_第9张图片
不想删除"Main.storyboard"也可以,去AppDelegate的application:didFinishLaunchingWithOptions:方法设置了入口后Main.storyboard就不会走了.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    InfoViewController *info = [[InfoViewController alloc] initWithNibName:@"InfoViewController" bundle:nil];
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.window.backgroundColor = [UIColor whiteColor];
    self.window.rootViewController = info;
    [self.window makeKeyAndVisible];
    return YES;
}




 

你可能感兴趣的:([Xcode])