NNNavigationBar-实现导航条背景渐变过渡动画的轻量级框架
项目简介
NNNavigationBar是一个用于实现UINavigationBar背景渐变过渡动画的轻量级框架。它通过Category/MethodSwizzling方式hook UINavigationBar的方法调用,从而达成导航条背景渐变过渡动画的效果。这个框架轻量的原因在于仅对UINavigationBar进行了MethodSwizzling方法混淆,不涉及其它类(如UIViewController、UINavigationController等)的方法混淆,且仅对UINavigationBar/UINavigationItem进行了必要的属性关联。
可能遇到的问题及解决
在使用UINavigationBar时可能会遇到一个系统bug,即导航右滑返回手势概率性地导致返回以后页面的rightBarButtonItem的tintColor颜色变浅。其bug产生的原因是在viewDidLoad中设置rightBarButtonItem会导致此问题,不过这个bug是概率性发生的,不易复现。解决此bug的方法是将rightBarButtonItem的设置移至viewWillAppear中。
安装方式
通过CocoaPods集成
首先安装最新版的CocoaPods:$ gem install cocoapods。然后在podfile中添加:pod ‘NNNavigationBar’, ‘~> 2.7.3’,最后在终端执行:$ pod install。若安装失败,提示:[!] Unable to find a specification for NNNavigationBar,可尝试使用命令:pod install –repo-update。
通过Carthage集成
先通过Homebrew命令安装Carthage:$ brew update,$ brew install carthage。然后在Cartfile中添加:github “amisare/NNNavigationBar” ~> 2.7.3。执行carthage构建Framework,并将NNNavigationBar.framework添加到Xcode项目中。
项目总结
NNNavigationBar是一个实现导航条背景渐变过渡动画的实用框架,对于iOS开发中涉及导航条背景动画处理有一定的帮助。欢迎大家在评论区留言分享使用体验或者提出相关问题。