
MagiTabBarController 是一个高度可定制的 TabBarController 组件,它是从 UITabBarController 继承而来的。
为什么?
在实际的开发中,我们可能会遇到需要自定义 UITabBar 的情况。例如:更改字体样式、添加动画、使用更大的项目等。然而,使用 UITabBarItem 来做这些很难。
使用 MagiTabBarController,您可以轻松实现这些功能!
- |
特性 |
描述 |
1 |
默认样式 |
您可以直接通过 MagiTabBarController 初始化 TabBar,以获取类似系统的样式。UITabBarController 样式 MagiTabBarController 默认样式  |
2 |
带有 "更多" 项的默认样式 |
如果项目数量超过最多显示数量,将会有一个 "更多" 项。带有 "更多" 的 UITabBarController 带有 "更多" 的 EMagiTabBarController  |
3 |
混合 UITabBarItem 和 MagiTabBarItem |
您可以将任何项设置为所需样式,包括 UITabBarItem 和 MagiTabBarItem。混合样式的 MagiTabBar 和 UITabBar 带有 "更多" 的混合样式的 MagiTabBar 和 UITabBar  |
4 |
UIKit 属性 |
MagiTabBarController 兼容 UITabBarController、UITabBar 和 UITabBarItem 的大多数 API 属性。您可以在不修改原有代码的情况下迁移到 MagiTabBarController。兼容 UITabBarController 的 selectedIndex  |
5 |
可以与 UINavigationController 的任何嵌套使用 |
使用 UITabBarController 开发时,有两种常见的方法来处理层级第一次├── UITabBarController└──── UINavigationController└────── UIViewController└──────── SubviewControllers第二次├── UINavigationController└──── UITabBarController└────── UIViewController└──────── SubviewControllers在第一种情况下,需要推送子视图时设置 hidesBottomBarWhenPushed = true 。第二种则不需要。在 MagiTabBarController 中,通过向 UITabBar 添加 Container 视图以与其他两种方法兼容。 |
6 |
可定制样式 |
使用 MagiTabBarController,您可以:1. 自定义选中项的颜色和样式 2. 添加选中动画 3. 自定义项的背景颜色 4. 添加高亮动画 5. 添加动画以提示用户 等等... |
7 |
可自定义项目大小可自定义点击事件 |
您可以使用MagiTabBarController轻松自定义项目大小。 当按钮的frame大于TabBar时,通过使用HitTest来使TabBar外部区域的点击有效。 此外,MagiTabBarController还可以自定义点击事件,并通过block回调super-layer来处理。TabBar中间的大项目 特别的提示样式 自定义点击事件  |
8 |
默认通知样式 |
您可以通过直接使用MagiTabBarController初始化TabBar来获取类似系统的通知样式。UITabBarController通知样式 MagiTabBarController系统类似通知样式  |
9 |
可自定义通知样式 |
使用 MagiTabBarController,您可以:1. 自定义通知动画 2. 自定义提示样式 3. 等等... |
10 |
Lottie |
通过自定义ContentView,您可以将Lottie的LAAnimationView添加到Item中。  |
需求
- 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
待办
- 容器布局完全是基于代码构建的,使用自动布局会更好。
- 当有“更多”时,如果编辑它将会出现问题。
- 部分UITabBarItem属性不会桥接到MagiTabBarItem。
授权
MIT许可 (MIT)
版权所有 (c) 2013-2016 eggswift. 保留所有权利。
特此授予,任何获得本软件和相关文档副本(“软件”)的个人,在限定的条件下免费使用该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得本软件的人这样做,前提是以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要内容中。
软件“按原样”提供,不提供任何形式的质量保证,明示或暗示,包括但不限于对适销性、特定用途适用性和不侵犯版权的保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担任何责任,无论是否因合同、侵权或其他行为而产生,以及与软件或软件的使用或其他操作有关。