XYNav 1.3.4

XYNav 1.3.4

xiaoyouPrince 维护。



XYNav 1.3.4

  • xiaoyouPrince

XYNav

CI Status Version License Platform

iOS 15

在 iOS 15 上,苹果改变了导航条的一些默认行为,开发者可以自己设置 UINavigationBar 的各个 Appearance 属性,以确保在各种情况下 UINavigationBar 的正常显示。

/// 控制 bar 在标准高度上的外观
@available(iOS 13.0, *)
@NSCopying open var standardAppearance: UINavigationBarAppearance

/// 控制 bar 在紧凑布局上的外观,如未设置就用 standardAppearance
@available(iOS 13.0, *)
@NSCopying open var compactAppearance: UINavigationBarAppearance?

/// 控制 bar 在其关联的 scrollView 滑动到bar顶部的时刻的外观,未设置使用 standardAppearance
@available(iOS 13.0, *)
@NSCopying open var scrollEdgeAppearance: UINavigationBarAppearance?

/// 控制 bar 在紧凑布局上,其关联的 scrollView 滑动到bar顶部的时刻的外观。如未设置依次尝试 scrollEdgeAppearance、compactAppearance、standardAppearance
@available(iOS 15.0, *)
@NSCopying open var compactScrollEdgeAppearance: UINavigationBarAppearance?

XYNav 默认将导航条背景颜色设置为属性 barTintColor。设置 barTintColor 后,导航条颜色将固定,并且相关的 ScrollView 滑动不会受到影响。

快速设置统一的全局样式

iOS App 开发中通常需要设置一个导航栏主基调,如 导航栏标题字体属性、颜色、大小navBar.tintColornavBar.barTintColor 等。XYNav 支持使用 UIAppearance 的方式统一设置。

重点在于重写了 UINavigationBar.appearance().barTintColor = .cyan 的实现,实现了一次设置,所有子页面的默认样式为统一的导航条背景颜色,具体页面也可以再次自定义需要的效果。

浅色/深色模式

XYNav 自动适配浅色/深色模式,无需您关心。

iPhone X

矩形屏和刘海屏自动适配,无需关注

XYNav 是一个简单易用的导航控制器。

目标

让开发过程更专注业务,让导航使用更加简单透明。

核心功能

  1. 让导航栈每个页面独立拥有自己的导航栏,单页面导航栏可完全自定义。
  2. 全屏侧滑返回手势。单页面可独立控制是否支持侧滑返回、侧滑响应范围
  3. 完全使用 UINavigationController 的 API,使用无缝切换
  4. 提供增强版自定义 API,让使用更简单

示例

示例

要运行示例工程,请先克隆仓库,然后从示例目录运行 pod install

零成本接入

与使用系统导航栏一样无缝切换。使用 XYNav 你仅需做一件事

// 纯代码创建 - 直接替换 UINavigationController 即可
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    window = UIWindow(frame: UIScreen.main.bounds)
    window?.makeKeyAndVisible()
    
    // 直接 XYNavigationController 创建并设置为 rootVC 即可
    let vc = ViewController()
    let nav = XYNavigationController(rootViewController: vc)
    window?.rootViewController = nav
    
    return true
}

如果使用 StoryBoard 创建,只需要将 StoryBoard 中的导航控制器指定 Class 为 XYNavigationController 即可,如图

特性 (UINavigationController API 完全支持)

  • 支持每个 VC 自定义的 navigationBarClass
  • 支持 Unwind
  • 支持屏幕旋转
  • 支持禁用侧滑返回手势
  • 支持设置侧滑返回手势响应范围
  • 支持通过 Interface Builder / StoryBoard 初始化的方式
  • 支持统一的 UIAppearance 统一设置导航栏样式
  • 支持亮、暗模式自动切换
  • 支持系统导航栏透明效果

要求

  • Swift 5.0
  • iOS 9.0

安装

XYNav 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中

pod 'XYNav'

作者

xiaoyouPrince, [email protected]

许可协议

XYNav 可在 MIT 许可下使用。有关更多信息,请参阅 LICENSE 文件。

https://www.youtube.com/watch?v=Yk4s-WLjxug