LUNTabBarController 1.0.4

LUNTabBarController 1.0.4

测试测试
语言语言 Obj-CObjective C
许可证 MIT
发布时间最新发布2017年11月

Victor Sharavara维护。




  • Victor Sharavara

Crafted in LunApps

请查看我们博客上的这篇文章如何为移动应用程序创建动画标签栏

目的

LUNTabBarController是UITabBarController的子类,旨在为底部的标签页添加酷炫的浮动动画和缩放效果,使标签栏具有3D效果。使用LUNTabBarController,您可以实现类似以下示例将标签栏转换为视图控制器的外观效果。

Gif animation

支持的操作系统和SDK版本

  • 支持的构建目标 - iOS 8.0

ARC兼容性

LUNTabBarController要求使用ARC。为了在一个非ARC项目中使用LUNTabBarController,您需要在LUNTabBarController.m和LUNTabBarAnimationController.m文件中添加-fobjc-arc编译器标志。

安装

要在您的应用程序中使用LUNTabBarController,只需将LUNTabBarController文件夹拖动到项目中即可。

或者您可以使用CocoaPods

pod 'LUNTabBarController', '~> 1.0'

用法

为了使用此项目,只需将应用程序标签栏控制器的类更改为LUNTabBarController,然后在界面编辑器中设置以下属性:

@property (nonatomic) IBInspectable NSInteger floatingTabIndex;

指定哪个标签应使用动画转换。

@property (nonatomic) IBInspectable CGFloat floatingContentHeight;

指定浮动标签的内容高度。此值决定了浮动标签内容沿y轴的初始平移。您可能希望此值大于或等于非透明内容的高度,否则您将在屏幕上看到一个内容立即出现。

@property (nonatomic) IBInspectable CGFloat transitionDuration;

指定动画转换的持续时间(以秒为单位)。

@property (nonatomic) IBInspectable CGFloat transitionScaleMultiplier;

指定要应用于背景视图的缩放倍数。

@property (nonatomic) IBInspectable CGFloat transitionAlphaMultiplier;

指定要应用于背景视图的不透明度倍数。

注意事项

如果您使用的转换缩放倍数小于1.0,您将看到围绕缩放视图的背景。要更改此背景颜色,只需将标签栏视图的颜色设置为所需颜色即可。您可以使用运行时属性或编程方式完成此操作。

如果内容高度不是常数(例如,取决于屏幕高度),则应根据您的逻辑以编程方式设置floatingContentHeight属性。这样做最容易的方法是继承LUNTabBarController并覆盖此属性的 getter。或者您可以从类外部设置属性。

在设计您浮动标签的界面时,您需要知道以下内容

  1. 你的视图控制器将全屏显示,正如标签栏控制器所期望的,因此你需要将内容放置在底部。

  2. 底部布局指南将包括标签栏的高度,即使标签栏不可见,所以你可能想为superview指定底部空间,而不是为底部布局指南。

  3. 你希望视图控制器的视图边框在标签栏下方延伸,否则在标签栏通常出现的位置将没有你的内容。要实现这一点,请确保你在视图控制器中启用了“在底部栏下延伸边框”。

要程序化关闭浮动标签,你应该调用以下方法

- (void)hideFloatingTab;

处理事件和提供额外动画

你可以通过在浮动标签的视图控制器中实现LUNTabBarFloatingControllerAnimatedTransitioning协议来获取关于动画转换的信息并提供额外动画。此协议包括以下方法

- (void)floatingViewControllerStartedAnimatedTransition:(BOOL)isPresenting;

通知动画转换开始。

- (void (^)(void))keyframeAnimationForFloatingViewControllerAnimatedTransition:(BOOL)isPresenting;

此方法用于在转换期间提供额外的自定义动画。

- (void)floatingViewControllerFinishedAnimatedTransition:(BOOL)isPresenting wasCompleted:(BOOL)wasCompleted;

通知动画转换结束。

许可证

根据MIT许可证使用。