在iOS应用中设置导航栏的样式

因此,您已经开始开发Wee应用程序,甚至是大型应用程序,并且想要实现以下目标:

它看起来非常简单:状态栏为白色,状态栏下方为深红色,导航栏具有相似但略有不同的颜色。 只是开个玩笑,这些颜色就以“ breakapp”的速度摆在一起供您使用。

关键是要弄清楚如何在iOS中执行操作非常棘手,除非您知道从哪里看。 有时,您感觉就像是您在掌握Google搜索,而不是如何编码才能找到这些东西。 但是,请不要害怕,亲爱的朋友们,请继续阅读,我将向您展示导航栏向导的方法。


我们需要做的第一件事是导航到应用程序的AppDelegate。 当您在此处设置样式时,它们将在整个应用程序范围内。

首先,让状态栏样式(顶部为白色文本和电池信息等)点亮内容。

  func application(_ application:UIApplication,didFinishLaunchingWithOptions launchOptions:[UIApplicationLaunchOptionsKey:Any]?)->布尔{ application.statusBarStyle = .lightContent } 

在didFinishLaunchingWithOptions函数内部,只需输入上面的代码。 生成并运行。 等待它不起作用。

事实证明,您还需要通过转到info.plist并添加新键来确认此选项:“查看基于控制器的状态栏外观”并将其设置为“ NO”。 如果您只输入’V’,它实际上会首先出现在列表中,这样您就不必记住它了-如果您真的想记住它,请使用一个助记符,例如:’不应允许弯曲的瓶子’(VCBSBA)…无论如何

繁荣! 您的应用现在具有很好的轻量级内容。 但是,我们如何增强NavigationBar的功能,使其充满色彩呢?

  UINavigationBar.appearance()。barTintColor = UIColor(红色:230/255,绿色:20/255,蓝色:20/255,alpha:1) 

原来,您只使用barTintColor,它非常简单。 顺便说一句,您可能要删除NavigationBar底部的细微阴影。 如果是这样,请执行以下操作:

  UINavigationBar.appearance()。shadowImage = UIImage() 

尽管看起来有些古怪,但这可以有效地消除阴影。

香蕉警报

是。 让我们这样做。 让我们首先在闭包中定义一个漂亮的小视图。 这包含我们需要的所有属性,并将其装箱返回。 好极了!

 让navigationBackgroundBar:UIView = {让视图= UIView()view.backgroundColor = UIColor(红色:220/255,绿色:10/255,蓝色:10/255,alpha:1)view.translatesAutoresizingMaskIntoConstraints = falsereturn view}() 

在上面,您只是在创建一个视图,设置它的背景色,停止自动翻译出现在手动视图中的约束(它只是在提供帮助,但我们不需要),然后返回该视图。

差不多好了。

  window?.addSubview(navigationBackgroundBar) 

如果在将视图添加到视图层次结构后进行构建和运行,则不会看到该视图。 仅一步之遥……

  //水平约束
 window?.addConstraints(NSLayoutConstraint.constraints(withVisualFormat:“ H:| [v0] |”,options:NSLayoutFormatOptions(),metrics:nil,views:[“ v0”:navigationBackgroundBar]))//高度为20window?.addConstraints(NSLayoutConstraint.constraints(withVisualFormat:“ V:| [v0(20)]”,options:NSLayoutFormatOptions(),metrics:nil,views:[“ v0”:navigationBackgroundBar]) 

在本演讲中,我不会深入探讨Visual Format Language,但总而言之,您需要为应用程序应用约束以了解如何处理视图,否则它就不会出现。

在第一个约束中,将其设置为窗口的整个宽度,在第二个约束中,将其固定到窗口的顶部,使其高度为20。这是理想的约束,将产生我们一直以来的效果。寻找!

繁荣! 你做到了。 还不错吧? 如果您能想到一种更好的记忆技术来记住该键名,那么请告诉我,不是吗……回到香蕉。