# ESTabBarController **Repository Path**: cocoapods_lib/ESTabBarController ## Basic Information - **Project Name**: ESTabBarController - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-31 - **Last Updated**: 2021-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README  [](#swift-package-manager) [](https://github.com/Carthage/Carthage) [](http://cocoapods.org/pods/ESTabBarController-swift) [](https://developer.apple.com/swift/) [](https://twitter.com/lihao_iOS) [](http://weibo.com/5120522686/profile?rightmod=1&wvr=6&mod=personinfo&is_all=1) [](https://gitter.im/ESTabBarController/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) ### [中文介绍](README_CN.md) **ESTabBarController** is a highly customizable TabBarController component, which is inherited from UITabBarController. ### Why? In real-world development, we may encounter the situation that customizing the UITabBar. For instance: change font style, add animation, use bigger item. However it's hard to do with UITabBarItem. **With ESTabBarController, You can easily achieve these!** -| Feature |Description -------------|-------------|------------- 1| Default style | You can get system-like style by initializing the TabBar with ESTabBarController directly.
UITabBarController style:  ESTabBarController default style:  2| Default style with "More" item | If the items are more than the maximum number of displays, there will be a "More" item. UITabBarController with "More":  ESTabBarController with "More":  3| Mix UITabBarItem and ESTabBarItem | You can set any item as you want, including UITabBarItem and ESTabBarItem. ESTabBar and UITabBar mixed style:  ESTabBar and UITabBar mixed style with "More":  4| UIKit attributes | ESTabBarController is compatible with UITabBarController, UITabBar and UITabBarItem's most API attributes. You can migrate to ESTabBarController without any modification of the origin code. Compatible with UITabBarController's `selectedIndex`:  5| Any nesting with UINavigationController | Developing with`UITabBarController`, there are two common ways to handle layers: First : ├── UITabBarController └──── UINavigationController └────── UIViewController └──────── SubviewControllers Second : ├── UINavigationController └──── UITabBarController └────── UIViewController └──────── SubviewControllers In the first case, need to set `hidesBottomBarWhenPushed = true` when pushing subViews. The second is not. In ESTabBarController, add Container views to UITabBar to be compatible with these two ways。 6| Customizable style | With ESTabBarController, you can: 1. Customize selected item's color and style:  2. Add selecting animation:  3. Customize item's background color:  4. Add highlight animation:  5. Add animation to prompt users:  6. And much more ... 7| Customizable item's size Customizable click event | You can easily customize item's size using ESTabBarController. **When the button's frame is larger than TabBar, through the use of HitTest to achieve making outer TabBar area click valid.** In addition, ESTabBarController can customize click event, and through a block to callback super-layer to handle. With big item in the middle of TabBar:  With a special hint style:  Customize click event:  8| Default notification style | You can get system-like notification style by initializing the TabBar with ESTabBarController directly. UITabBarController notification style:  ESTabBarController system-like notification style:  9| Customizable notification style | With ESTabBarController, you can: 1. Customize notification animation:   2. Customize prompt style:  3. And much more ... 10| Lottie | Through customizing ContentView, you are able to add Lottie's LAAnimationView to Item(s)  ## Requirements * Xcode 8 or later * iOS 8.0 or later * ARC * Swift 5 or later ## Demo You can download and build ESTabBarControllerExample project, and you will find more examples to use ESTabBarController, and also more examples to customize UITabBar。 ## Usage ### CocoaPods ``` ruby pod "ESTabBarController-swift" ``` ### Carthage ```ruby github "eggswift/ESTabBarController" ``` ### Manually ``` ruby git clone https://github.com/eggswift/ESTabBarController.git open ESTabBarController ``` ## TODO 1. The Containers' layout is purely based on code,using Autolayout will be better. 2. When there is "More", if edit it will occurs problem. 3. Partial UITabBarItem attributes are not bridge to ESTabBarItem. 4. ~~The picture of 'More' item in ESTabBarItemMoreContentView is not set into framework, plan to convert it to CGBitmap.~~ ## Sponsor You can support the project by checking out our sponsor page. It takes only one click: