返回

WWDC22 的 UINavigationBar:新风格、适配度和示例

IOS

UINavigationBar 改头换面,提升 iOS 导航体验

焕然一新的风格

在今年的 WWDC22 上,Apple 发布了 UINavigationBar 的重大更新,引入了三种新颖的样式,可将 iOS 应用程序的导航体验提升至新高度:

  • navigator :熟悉的导航体验,带有标准标题和后退按钮。
  • browser :简洁的工具栏和隐藏式标题,模仿 Safari 浏览器。
  • editor :专为文本编辑应用程序打造,配有可自定义的工具栏,包含“取消”和“完成”按钮。

自定义的力量

UINavigationItem 的崭新 style 属性赋予开发者前所未有的灵活性,让他们能够根据应用程序的特定需求定制导航栏的外观和行为。通过设置此属性,您可以轻松切换至预定义的样式,如:

navigationItem.style = .browser

适配性升级

UINavigationBar 现已获得适配性增强,可无缝适应各种设备和显示尺寸。无论屏幕方向或大小如何,导航栏都会自动调整尺寸和布局,确保所有设备上的一致且优化的导航体验。

代码示例

以下代码展示了如何利用 UINavigationBar 的新特性:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // 设置导航栏样式为 browser
        navigationItem.style = .browser

        // 添加自定义标题视图
        let titleView = UILabel()
        titleView.text = "自定义标题"
        titleView.sizeToFit()
        navigationItem.titleView = titleView

        // 添加左侧栏按钮
        let leftButton = UIBarButtonItem(title: "返回", style: .plain, target: self, action: #selector(backButtonTapped))
        navigationItem.leftBarButtonItem = leftButton
    }

    @objc func backButtonTapped() {
        navigationController?.popViewController(animated: true)
    }
}

总结

UINavigationBar 的更新为 iOS 开发者提供了强大的工具,让他们能够创建更直观、更用户友好的应用程序导航体验。通过拥抱新样式、适配性增强和 UINavigationItem 的 style 属性,您可以为用户提供无缝且定制化的导航旅程。

常见问题解答

  1. 新样式是否向后兼容?

    • 是的,新样式向后兼容,您可以随时将其用于现有应用程序。
  2. 我可以创建自己的自定义样式吗?

    • 不,目前无法创建自定义样式,但 Apple 未来可能会提供此功能。
  3. 如何处理较长的标题?

    • 对于较长的标题,请考虑使用“...”省略号或设计一个自适应布局,以便在空间有限时自动调整标题长度。
  4. 样式属性影响按钮吗?

    • 是的,样式属性会影响导航栏上按钮的外观,例如它们的排列和大小。
  5. 是否可以使用多于一种样式?

    • 每个 UINavigationBar 只能应用一种样式,因此您需要在应用程序的各个视图控制器中进行切换。