导航栏与屏幕顶部显示的导航控制器关联使用。它是继承UIView的UINavigationBar类的实例。
class UINavigationBar : UIView
UINavigationBar对象是沿着嵌入在导航控制器中的“View Controller”窗口顶部显示的栏。导航栏包含导航项目,通常是用于在屏幕层次结构内进行导航的栏按钮项目。典型的导航栏包含一个显示在其左侧的后退按钮,一个中心View Controller标题以及可选的右栏按钮。
导航栏最常用于与UINavigationController对象的关联。导航控制器创建和管理关联的导航栏。它还使用视图控制器的属性控制导航栏的内容。
链接:https://www.learnfk.comhttps://www.learnfk.com/ios/ios-navigation-bar.html
来源:LearnFk无涯教程网
UINavigationBar的barStyle属性用于配置样式。通常,导航栏有两种外观样式:black或default。black黑色样式使导航栏具有黑色背景和白色文本。无涯教程还可以将其设置为半透明以使其半透明。下表说明了用于配置导航栏的界面构建器属性。
sn | 属性 | 描述 |
---|---|---|
1 | Style | 它代表导航栏的栏样式。它控制条形的颜色和标题的颜色。可以在运行时使用barStyle和isTransluecent属性访问此值。 |
2 | Bar Tint | 它控制导航栏的色调颜色。可以在运行时使用barTintColor属性访问此值。 |
3 | Shadow Image | 它控制显示在导航栏下方的阴影图像。可以在运行时使用shadowImage属性访问此值。 |
4 | Back Image | 它控制用于显示在后退按钮边缘的图像。可以在运行时使用backIndicatorImage属性访问此值。 |
5 | Back Mask | 它指定了与背景图像属性关联的蒙版。必须将其与back-image属性关联使用,因为它在动画过渡期间控制后退按钮的外观。可以使用backIndicatorTransitionMaskImage属性访问此值。 |
sn | 属性 | 描述 |
---|---|---|
1 | Title Font | 它代表用于在导航栏中心显示标题的字体。可以在运行时使用titleTextAttributes词典中的字体键访问此值。 |
2 | Title Color | 它控制导航栏标题的颜色。可以在运行时使用titleTextAttributes词典中的frontendColor键访问它。 |
3 | Title Shadow | 在渲染导航栏时,它指定阴影的颜色和偏移量。可以使用titleTextAttributes词典中的阴影键来访问它。 |
正如无涯教程已经讨论过的,导航栏包含导航堆栈上最顶层视图控制器的标题。每次导航控制器更改最顶部的视图控制器时,导航栏的内容也会更改,包括标题和栏按钮项。导航栏在左,中和右三个位置包含内容。条形按钮项目是UIBarButtonItem类的实例。
UINavigationBar的tintColor属性用于更改导航栏中项目的色调颜色。无涯教程还可以通过使用UINavigationBar的barTintColor属性来更改条形颜色。
导航栏中的“Left”项目向后导航到导航堆栈中的上一个视图控制器。但是,如果当前最上方的视图控制器包含自定义的左栏按钮项,则将显示它。视图控制器的导航项目的leftBarButtonItem属性用于设置自定义左栏按钮项目。
如果顶级视图控制器不包含任何自定义导航栏标题视图,则显示默认的栏标题。但是,可以使用视图控制器的导航项目的titleView属性设置自定义标题视图。 View Controller的title属性显示为导航栏的标题。但是,视图控制器的导航项目的title属性可用于显示其他项目。
导航栏的右侧是可选的,即,如果尚未设置自定义Right Item右侧项目,则不会为右侧项目设置默认内容。要指定自定义的右键栏按钮项,无涯教程使用rightBarButtonItem属性。
ViewController.swift
import UIKit class ViewController: UIViewController { let sb = UIStoryboard(name: "Main", bundle: nil) override func viewDidLoad() { super.viewDidLoad() //Do any additional setup after loading the view. self.navigationController?.navigationBar.barStyle = .black self.navigationController?.navigationBar.barTintColor = UIColor.brown self.navigationItem.title = "Home" let rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .camera, target: self, action: #selector(clickedCamera)) let rightButton2 = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(clickedAdd)) navigationItem.rightBarButtonItems = [rightBarButtonItem,rightButton2] rightBarButtonItem.tintColor = UIColor.white rightButton2.tintColor = UIColor.white } @IBAction func clickedButtonShow(_ sender: Any) { let secondVC = sb.instantiateViewController(identifier: "SecondVC") self.navigationController?.pushViewController(secondVC, animated: true) } @objc func clickedCamera(){ debugPrint("Camera Clicked") } @objc func clickedAdd(){ debugPrint("Add button Clicked") } }
输出
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)