本文主要是介绍[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版本.
2.
不习惯使用LaunchScreen.storyboard, 顺手就将它删掉,然后发现Xcode已经不一样,App Icons and Launch Images中没有了"Launch Images Source".
顺便记一下,Deployment Info中的"Hide status bar"是用来设置是否隐藏启动页中状态栏的.
原来的这里是这个样子:
不设置"Launch Screen File"时,运行应用程序会发现启动页是黑屏,去Assets中添加了"LaunchImage"后运行得到的启动页仍然是黑屏. 同时,还发现首页的顶端和底端会有黑边,这都是同一个问题引起的.
这时,可以去Build Settings中搜索"Launch Image",设置Asset Catalog Launch Image Set Name为"LaunchImage"就可以解决启动页黑屏的问题了.
这样处理只是权宜之计, 大佬的<iOS 13 适配要点总结>中有写到
"
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 进行审批。
解决方案
使用 LaunchScreen.storyboard
设置启动页,弃用 LaunchImage
。
"
3.
不喜欢使用Main.storyboard也将其删掉, 再删掉info表中的"Main storyboard file base name"
不想删除"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;
}
这篇关于[iOS]Xcode11的部分改变的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!