大佬教程收集整理的这篇文章主要介绍了我找到了四种不同的方式来改变Xcode中的iOS状态栏.为什么会有这么多,有什么区别?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1.模拟指标(仅限故事板显示)
2.更改常规 – >部署信息 – >状态栏样式
确保以下Info.list设置设置为“NO”:
View controller-based status bar appearance : NO
在此处的下拉框中选择“Light”或“Default”:
General->Deployment Info->Status Bar Style
3.手动设置
确保以下Info.plist设置设置为“NO”:
View controller-based status bar appearance : NO
插入以下代码(通常在didFinishLaunchingWithOptions中):
UIApplication.sharedApplication().statusBarStyle = .Lightcontent
4.覆盖“preferredStatusBarStyle()”
确保存在以下Info.plist属性并将其设置为“YES”:
View controller-based status bar appearance : YES
然后将以下代码添加到为Storyboard中的ViewController设置的UIViewController(或派生类):
override func preferredStatusBarStyle() -> UIStatusBarStyle { return UIStatusBarStyle.Lightcontent }
我目前的理解
模拟指标仅用于显示,在运行时不提供实际更改.我相信手动设置和更改常规选项卡中的设置可能会在引擎盖下做同样的事情,但我不确定.我想还有一种方法可以直接为各个视图控制器设置此属性.
题
出于某种原因,实际上对我有用的唯一方法是方法3,手动设置.没有其他方法提供任何改变.就个人而言,我更喜欢在派生类中重写,所以我有一个共享UIViewController样式的中心位置.
这没有任何作用,因为它只是一个模拟的指标.您可以在界面构建器中对其进行设置,但模拟的度量标准只是模拟的,不会在运行时应用.
选项2
此选项可防止各个视图控制器设置状态栏外观(由于Info.plist设置),并且它依赖于部署设置中的默认颜色集,但该值可以在运行时更改(请参阅选项3).
选项3
与选项2一样,此选项可防止各个视图控制器设置状态栏外观(由于Info.plist设置),但与选项2不同,我们在运行时动态设置颜色.我们可以在发布时在app委托中执行此操作…或者我们可以在其他时间更改它.也许我们有像谷歌地图应用程序的夜间模式,或者我们可能让用户在某处配置自己的主题颜色.
选项4
如果您正在嵌入UINavigationController,那么您将需要子类UINavigationController并在此处覆盖“preferredStatusBarStyle()”.
您可能缺少步骤outlined here.在viewDidLoad中,尝试指定您希望有机会设置状态栏.
override func viewDidLoad() { super.viewDidLoad() setNeedsStatusBarAppearanceupdate() }
至于为什么对于看似相同的事情有不同的方法,我们必须首先意识到这些实际上并不是同一个东西.
再一次,让我们分解吧.
>选项1不是运行时更改,所以它对我们来说真的没有意义.
>选项2& 3几乎是一回事.
>选项4与选项2& 3.
为什么我们有2/3选项和4选项?
因为在某些应用程序中,您可能希望应用程序中的每个视图控制器具有相同的状态栏颜色,但根据某些设置,状态栏颜色可能会有所不同.
例如,考虑使用Google地图应用.在晚上,应用程序变黑,状态栏需要显示白色,但在白天,应用程序为白色,状态栏需要为黑色.每个视图控制器都是一样的,因此设置颜色的代码只需要在一个地方实现(不要求每个视图控件都从同一个基本父级继承).为此,我们可能希望您选择2/3.
但是考虑一个具有不同颜色的视图控制器的应用程序,其中一些使用白色状态栏看起来更好,而其他一些看起来更好用黑色.对于这种方法,我们需要您的选项4,并让每个视图控制器分别指定状态栏应该是什么颜色.
简而言之,您的选项2/3是一个全局状态栏设置,无论您在应用程序中的哪个位置都适用,而选项4是本地的每VC设置.
以上是大佬教程为你收集整理的我找到了四种不同的方式来改变Xcode中的iOS状态栏.为什么会有这么多,有什么区别?全部内容,希望文章能够帮你解决我找到了四种不同的方式来改变Xcode中的iOS状态栏.为什么会有这么多,有什么区别?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。