ADNavigationBarExtension 是一个使用 Swift 编写的 UI 库。它允许您显示和隐藏 UINavigationBar 的扩展
特性
使用 ExtensibleNavigationBarNavigationController
来在您的 UINavigationBar 下设置一个扩展
- 导航控制器管理着您的导航栏扩展的显示
- 它与 UIAppearance 兼容
查看提供的示例以获取帮助,或者直接进行询问。
要求
ADNavigationBarExtension 使用 Swift 5.0 编写。兼容 iOS 10.0+
安装
ADNavigationBarExtension 通过 CocoaPods 可用。要安装它,只需将以下行添加到您的 Podfile 中
Cocoapods
pod 'ADNavigationBarExtension'
使用方法
设置
该库的主要组件是 ExtensibleNavigationBarNavigationController
。它基本上是一个简单的 UINavigationController,用于管理在 UINavigationBar 下方的辅助视图。
启动顺序可能如下所示
let navigationController = ExtensibleNavigationBarNavigationController()
let navigationBarExtension = MyCustomView()
let navigationBarExtensionHeight = 64
navigationController.setNavigationBarExtensionView(navigationBarExtension, forHeight: navigationBarExtensionHeight)
navigationController.pushViewController(MyViewController(), animated: false)
window.rootViewController = navigationController
然后,ExtensibleNavigationBarNavigationController
需要知道何时显示或隐藏导航栏的扩展。您必须使用协议 ExtensibleNavigationBarInformationProvider
extension MyViewController: ExtensibleNavigationBarInformationProvider {
var shouldExtendNavigationBar: Bool { return true }
}
警告
请注意,ExtensibleNavigationBarNavigationController
使用了 UINavigationControllerDelegate
协议。因此,如果您还需要使用 navigationController 的代理属性,可以使用此方法
let navigationController = ExtensibleNavigationBarNavigationController()
navigationController.navigationControllerDelegate = self
在 iOS 12 中存在一个问题,无法从 UINavigationBar.appearance()
方法中获取 isTranslucent
属性。因此,如果您需要设置您的 UINavigationBar 透明,可以使用此方法
ExtensibleNavigationBarNavigationController.ad_isTranslucent = true
鸣谢
ADNavigationBarExtension 由 Fabernovel 拥有和维护。您可以在 Twitter 上关注我们:@FabernovelApp。
许可
ADNavigationBarExtension 依照 MIT 许可发布。有关详细信息,请参阅LICENSE。