ESTabBarController-swift 2.8.0

ESTabBarController-swift 2.8.0

测试已测试
语言语言 SwiftSwift
授权 MIT
发布最后发布2020年1月
SPM支持 SPM

egg swift 维护。



ESTabBarController

SwiftPM compatible Carthage Compatible CocoaPods Swift v5 Twitter Twitter Chat Gitter.im

中文介绍

ESTabBarController 是一个高度可定制的 TabBarController 组件,它继承自 UITabBarController。

为什么?

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

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

- 特性 描述
1 默认样式 您可以通过直接使用 ESTabBarController 初始化 TabBar 来获得类似系统的样式。

UITabBarController 样式

System native style

ESTabBarController 默认样式

ES system-like style
2 带有“更多”项的默认样式 如果项目数超过显示的最大数,将出现“更多”项。

带有“更多”的 UITabBarController

enter image description here

带有“更多”的 ESTabBarController

enter image description here
3 Mixed UITabBarItem 和 ESTabBarItem 您可以按需设置任何项,包括 UITabBarItem 和 ESTabBarItem。

Mixed ESTabBar 和 UITabBar 样式

enter image description here

Mixed ESTabBar 和 UITabBar 样式,带有“更多”项

enter image description here
4 UIKit 属性 ESTabBarController 兼容 UITabBarController,UITabBar 和 UITabBarItem 的大多数 API 属性。您可以在不对原始代码进行任何修改的情况下迁移到 ESTabBarController。

兼容 UITabBarController 的 selectedIndex

enter image description here
5 与 UINavigationController 的任何嵌套 使用 UITabBarController 进行开发时,有两种处理层次结构的方法

第一

├── UITabBarController

└──── UINavigationController

└────── UIViewController

└──────── SubviewControllers

第二

├── UINavigationController

└──── UITabBarController

└────── UIViewController

└──────── SubviewControllers

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

在 ESTabBarController 中,通过向 UITabBar 中添加容器视图来兼容这两种方式。
6 可定制样式 使用 ESTabBarController,您可以:

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

6. 还有更多...

7 可自定义项目的大小

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

当按钮的frame大于TabBar时,通过使用HitTest可以实现使外围TabBar区域点击有效。

此外,ESTabBarController可以自定义点击事件,并通过一个block回调到上级层处理。

TabBar中间的大项目

enter image description here

特殊提示样式

enter image description here

自定义点击事件

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

UITabBarController通知样式

enter image description here

ESTabBarController系统类似通知样式

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

1. 自定义通知动画

enter image description here

enter image description here

2. 自定义提示样式

enter image description here

3. 还有更多...

10 Lottie 通过自定义ContentView,您可以将Lottie的LAAnimationView添加到Item(s)

enter image description here

需求

  • Xcode 8或更高版
  • iOS 8.0或更高版
  • ARC
  • Swift 5或更高版

示例

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

使用方法

CocoaPods

pod "ESTabBarController-swift"

Carthage

github "eggswift/ESTabBarController"

手动

git clone https://github.com/eggswift/ESTabBarController.git
open ESTabBarController

待办

  1. 容器的布局完全基于代码,使用自动布局会更好。
  2. 当有“更多”时,如果编辑它会发生问题。
  3. 部分UITabBarItem属性没有桥接到ESTabBarItem。
  4. ESTabBarItemMoreContentView中“更多”项的图片尚未设置为框架,计划将其转换为CGBitmap。

致谢

关于

ESTabBarController是由Vincent Li开发和维护的。如果您在使用ESTabBarController时有任何问题或问题,欢迎使用问题
如果您想为ESTabBarController做出贡献,请提交Pull Request,我将尽快处理。

Twitter URL Twitter Follow

许可

MIT 许可协议 (MIT)

版权所有 © 2013-2016 eggswift。保留所有权利。

特此授予任何获取此软件及其相关文档(“软件”)副本的人免费使用权,不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、许可和/或销售软件副本,并允许获得该软件的人这样做,但须遵守以下条件

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

软件按“原样”提供,不提供任何形式的保证,无论是明示的还是隐含的,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他行为,无论是由于、来自或与软件或其使用或其他软件的处理方式有关。