MagiTabBarController 0.1.0

MagiTabBarController 0.1.0

AnRan 维护。



  • AnRanScheme

MagiTabBarController

中文介绍

MagiTabBarController 是一个高度可定制的 TabBarController 组件,它是从 UITabBarController 继承而来的。

为什么?

在实际的开发中,我们可能会遇到需要自定义 UITabBar 的情况。例如:更改字体样式、添加动画、使用更大的项目等。然而,使用 UITabBarItem 来做这些很难。

使用 MagiTabBarController,您可以轻松实现这些功能!

- 特性 描述
1 默认样式 您可以直接通过 MagiTabBarController 初始化 TabBar,以获取类似系统的样式。

UITabBarController 样式

System native style

MagiTabBarController 默认样式

Magi system-like style
2 带有 "更多" 项的默认样式 如果项目数量超过最多显示数量,将会有一个 "更多" 项。

带有 "更多" 的 UITabBarController

enter image description here

带有 "更多" 的 EMagiTabBarController

enter image description here
3 混合 UITabBarItem 和 MagiTabBarItem 您可以将任何项设置为所需样式,包括 UITabBarItem 和 MagiTabBarItem。

混合样式的 MagiTabBar 和 UITabBar

enter image description here

带有 "更多" 的混合样式的 MagiTabBar 和 UITabBar

enter image description here
4 UIKit 属性 MagiTabBarController 兼容 UITabBarController、UITabBar 和 UITabBarItem 的大多数 API 属性。您可以在不修改原有代码的情况下迁移到 MagiTabBarController。

兼容 UITabBarController 的 selectedIndex

enter image description here
5 可以与 UINavigationController 的任何嵌套使用 使用 UITabBarController 开发时,有两种常见的方法来处理层级

第一次

├── UITabBarController

└──── UINavigationController

└────── UIViewController

└──────── SubviewControllers

第二次

├── UINavigationController

└──── UITabBarController

└────── UIViewController

└──────── SubviewControllers

在第一种情况下,需要推送子视图时设置 hidesBottomBarWhenPushed = true。第二种则不需要。

在 MagiTabBarController 中,通过向 UITabBar 添加 Container 视图以与其他两种方法兼容。
6 可定制样式 使用 MagiTabBarController,您可以:

1. 自定义选中项的颜色和样式

enter image description here

2. 添加选中动画

enter image description here

3. 自定义项的背景颜色

enter image description here

4. 添加高亮动画

enter image description here

5. 添加动画以提示用户

enter image description here

等等...

7 可自定义项目大小

可自定义点击事件
您可以使用MagiTabBarController轻松自定义项目大小。

当按钮的frame大于TabBar时,通过使用HitTest来使TabBar外部区域的点击有效。

此外,MagiTabBarController还可以自定义点击事件,并通过block回调super-layer来处理。

TabBar中间的大项目

enter image description here

特别的提示样式

enter image description here

自定义点击事件

enter image description here
8 默认通知样式 您可以通过直接使用MagiTabBarController初始化TabBar来获取类似系统的通知样式。

UITabBarController通知样式

enter image description here

MagiTabBarController系统类似通知样式

enter image description here
9 可自定义通知样式 使用 MagiTabBarController,您可以:

1. 自定义通知动画

enter image description here

enter image description here

2. 自定义提示样式

enter image description here

3. 等等...

10 Lottie 通过自定义ContentView,您可以将Lottie的LAAnimationView添加到Item中。

enter image description here

需求

  • Xcode 8或更高版本
  • iOS 8.0或更高版本
  • ARC
  • Swift 3或更高版本

示例

您可以下载并构建MagiTabBarControllerExample项目,您将找到更多使用ESTabBarController以及自定义UITabBar的示例。

使用方法

CocoaPods

pod "MagiTabBarController-swift"

手动安装

git clone https://github.com/AnRanScheme/MagiTabBarController.git
open MagiTabBarController

待办

  1. 容器布局完全是基于代码构建的,使用自动布局会更好。
  2. 当有“更多”时,如果编辑它将会出现问题。
  3. 部分UITabBarItem属性不会桥接到MagiTabBarItem。

授权

MIT许可 (MIT)

版权所有 (c) 2013-2016 eggswift. 保留所有权利。

特此授予,任何获得本软件和相关文档副本(“软件”)的个人,在限定的条件下免费使用该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得本软件的人这样做,前提是以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要内容中。

软件“按原样”提供,不提供任何形式的质量保证,明示或暗示,包括但不限于对适销性、特定用途适用性和不侵犯版权的保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担任何责任,无论是否因合同、侵权或其他行为而产生,以及与软件或软件的使用或其他操作有关。