KMNavigationBarTransition 1.1.11

KMNavigationBarTransition 1.1.11

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2023年10月

周其维护。




KMNavigationBarTransition 中文介绍

这是一个即用型通用库,帮助您管理导航栏样式,并在推送或弹出视图控制器时,在不同的导航栏样式之间提供平滑的过渡动画。而您无需写任何代码,所有操作都是自动完成的。

截图

现在

KMNavigationBarTransition KMNavigationBarTransition

之前

KMNavigationBarTransition KMNavigationBarTransition

介绍

该库的设计理念是,你只需关心当前视图控制器中导航栏的背景样式,无需处理在推送或弹出时的一系列背景样式。

该库可以在推送时捕获消失的视图控制器中导航栏的背景样式,当你弹出返回到视图控制器时,导航栏将恢复之前的样式,因此你无需考虑弹出后的背景样式。同样,推送后也不需要考虑,因为需要关心的观点控制器将被推送。

用法

使用此库时不需要导入任何头文件,该库使用方法交换来实现效果。

建议在基视图控制器的viewDidLoad方法中设置导航栏的默认背景样式。当需要更改它时,一般只需要在当前视图控制器的viewDidLoad方法中执行,但如果你需要支持3D Touch的预览和弹出,你可以在viewWillAppear:方法中执行。

以下是一些设置导航栏背景样式的建议,你可以详细了解示例。

  • 有两种方法可以设置导航栏背景样式,setBackgroundImage:forBarMetrics:setBarTintColor:。建议使用前者,更多详情请查看已知问题

  • 在初始化后最好不要随意更改translucent属性的值,否则接口布局易产生混淆。

  • translucent属性的值为true时,可以使用以下方法使导航栏透明

    navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
    navigationController?.navigationBar.shadowImage = UIImage() // shadowImage is the 1px line
  • 你可以通过修改setBackgroundImage:forBarMetrics:方法中图像的alpha值来修改导航栏背景色的alpha值。

  • 你可以使用以下方法在viewWillAppear:中显示或隐藏导航栏

    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        navigationController?.setNavigationBarHidden(hidden, animated: animated)
    }

    最好不要在viewWillDisappear:或其他执行动画转换的方法中这样做,因为这很难管理。再次强调,你只需关心当前视图控制器中的导航栏样式。

    当然,最好不要隐藏导航栏,这可能会触发一些与Apple的交互式弹出手势相关的bug。

安装

CocoaPods

您可以使用以下命令安装CocoaPods的最新版本。

$ gem install cocoapods

只需将以下行添加到Podfile中。

pod 'KMNavigationBarTransition'

然后,运行以下命令。

$ pod install

Carthage

Carthage 是一个去中心化的依赖管理器,它构建您的依赖,并为您提供二进制框架。

您可以使用以下命令通过 Homebrew 安装Carthage。

$ brew update
$ brew install carthage

要使用Carthage在Xcode项目中集成KMNavigationBarTransition,请在您的 Cartfile 中指定它。

github "MoZhouqi/KMNavigationBarTransition"

运行 carthage update 命令来构建框架,并将构建好的 KMNavigationBarTransition.framework 拖到Xcode项目中。

要求

  • iOS 7.0+

已知问题

在iOS 8.2或以下版本中,如果将translucent属性的值设置为true,并为背景颜色设置barTintColor,然后更改barTintColor,当交互式过渡被取消时,导航栏的背景颜色将闪烁。

为了避免这种情况发生,建议使用 setBackgroundImage:forBarMetrics: 代替 setBarTintColor: 来更改导航栏的背景颜色。

许可

KMNavigationBarTransition遵循MIT许可发布。详情见LICENSE文件。