导航条样式
在 iOS 13 以后使用 UINavigationBarAppearance
自定义导航条样式。
创建 UINavigationBarAppearance
对象后,使用该类的方法和属性来指定导航栏中项目所需的外观。使用 UIBarAppearance
继承的属性来配置导航栏本身的背景和阴影属性。
1// BasicViewController.swift
2
3class BasicViewController: UIViewController {
4
5 private lazy var navigationBarAppearance: UINavigationBarAppearance = {
6 let barAppearance = UINavigationBarAppearance()
7 // 设置导航栏标题富文本样式
8 barAppearance.titleTextAttributes
9 // 设置导航栏返回指示图,任何一张图为空就会使用系统默认的
10 barAppearance.setBackIndicatorImage(UIImage(named: ""), transitionMaskImage: UIImage(named: ""))
11
12 // 设置背景模糊效果
13 barAppearance.backgroundEffect
14
15 // 设置背景色
16 barAppearance.backgroundColor
17
18 // 设置背景图,在背景色顶部展示
19 barAppearance.backgroundImage
20
21 // 设置展示背景图内容模式
22 barAppearance.backgroundImageContentMode
23
24 // 设置阴影颜色
25 barAppearance.shadowColor
26
27 // 设置阴影图片
28 barAppearance.shadowImage
29
30 // 使用默认背景和阴影值配置外观。
31 barAppearance.configureWithDefaultBackground()
32
33 // 用一组适合当前主题的不透明颜色配置外观。
34 barAppearance.configureWithOpaqueBackground()
35
36 // 配置具有透明背景且无阴影的外观
37 barAppearance.configureWithTransparentBackground()
38
39 return barAppearance
40
41 }()
42
43 override func viewDidLoad() {
44 super.viewDidLoad()
45 navigationController?.navigationBar.standardAppearance = navigationBarAppearance
46 navigationController?.navigationBar.scrollEdgeAppearance = navigationBarAppearance
47 navigationController?.navigationBar.compactAppearance = navigationBarAppearance
48
49 // 设置导航条 tintColor 可已调整导航按钮的样式
50 navigationController?.navigationBar.tintColor = .black
51 }
52}