Swift - Navigation Bar

Swift - Navigation Bar 首页 / iOS入门教程 / Swift - Navigation Bar

导航栏与屏幕顶部显示的导航控制器关联使用。它是继承UIView的UINavigationBar类的实例。

class UINavigationBar : UIView

UINavigationBar对象是沿着嵌入在导航控制器中的“View Controller”窗口顶部显示的栏。导航栏包含导航项目,通常是用于在屏幕层次结构内进行导航的栏按钮项目。典型的导航栏包含一个显示在其左侧的后退按钮,一个中心View Controller标题以及可选的右栏按钮。

Navigation Bar

导航栏最常用于与UINavigationController对象的关联。导航控制器创建和管理关联的导航栏。它还使用视图控制器的属性控制导航栏的内容。

链接:https://www.learnfk.comhttps://www.learnfk.com/ios/ios-navigation-bar.html

来源:LearnFk无涯教程网

    配置导航栏样式

    UINavigationBar的barStyle属性用于配置样式。通常,导航栏有两种外观样式:black或default。black黑色样式使导航栏具有黑色背景和白色文本。无涯教程还可以将其设置为半透明以使其半透明。下表说明了用于配置导航栏的界面构建器属性。

    sn属性描述
    1Style它代表导航栏的栏样式。它控制条形的颜色和标题的颜色。可以在运行时使用barStyle和isTransluecent属性访问此值。
    2 Bar Tint它控制导航栏的色调颜色。可以在运行时使用barTintColor属性访问此值。
    3Shadow Image它控制显示在导航栏下方的阴影图像。可以在运行时使用shadowImage属性访问此值。
    4Back Image它控制用于显示在后退按钮边缘的图像。可以在运行时使用backIndicatorImage属性访问此值。
    5 Back Mask它指定了与背景图像属性关联的蒙版。必须将其与back-image属性关联使用,因为它在动画过渡期间控制后退按钮的外观。可以使用backIndicatorTransitionMaskImage属性访问此值。

    标题属性

    sn属性描述
    1Title Font它代表用于在导航栏中心显示标题的字体。可以在运行时使用titleTextAttributes词典中的字体键访问此值。
    2Title Color它控制导航栏标题的颜色。可以在运行时使用titleTextAttributes词典中的frontendColor键访问它。
    3Title Shadow在渲染导航栏时,它指定阴影的颜色和偏移量。可以使用titleTextAttributes词典中的阴影键来访问它。

    更新导航栏内容

    正如无涯教程已经讨论过的,导航栏包含导航堆栈上最顶层视图控制器的标题。每次导航控制器更改最顶部的视图控制器时,导航栏的内容也会更改,包括标题和栏按钮项。导航栏在左,中和右三个位置包含内容。条形按钮项目是UIBarButtonItem类的实例。

    UINavigationBar的tintColor属性用于更改导航栏中项目的色调颜色。无涯教程还可以通过使用UINavigationBar的barTintColor属性来更改条形颜色。

    Left Item

    导航栏中的“Left”项目向后导航到导航堆栈中的上一个视图控制器。但是,如果当前最上方的视图控制器包含自定义的左栏按钮项,则将显示它。视图控制器的导航项目的leftBarButtonItem属性用于设置自定义左栏按钮项目。

    Center Item

    如果顶级视图控制器不包含任何自定义导航栏标题视图,则显示默认的栏标题。但是,可以使用视图控制器的导航项目的titleView属性设置自定义标题视图。 View Controller的title属性显示为导航栏的标题。但是,视图控制器的导航项目的title属性可用于显示其他项目。

    无涯教程网

    Right Item

    导航栏的右侧是可选的,即,如果尚未设置自定义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")
        }
    }

    输出

    Navigation Bar

    祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

    技术教程推荐

    Java核心技术面试精讲 -〔杨晓峰〕

    研发效率破局之道 -〔葛俊〕

    MySQL 必知必会 -〔朱晓峰〕

    操作系统实战45讲 -〔彭东〕

    快手 · 移动端音视频开发实战 -〔展晓凯〕

    Dubbo源码剖析与实战 -〔何辉〕

    零基础GPT应用入门课 -〔林健(键盘)〕

    结构会议力 -〔李忠秋〕

    结构沟通力 -〔李忠秋〕

    好记忆不如烂笔头。留下您的足迹吧 :)