ProductPromotion
Logo

Swift

made by https://0x3d.site

GitHub - eggswift/ESTabBarController: :octocat: ESTabBarController is a Swift model for customize UI, badge and adding animation to tabbar items. Support lottie!
:octocat: ESTabBarController is a Swift model for customize UI, badge and adding animation to tabbar items. Support lottie! - eggswift/ESTabBarController
Visit Site

GitHub - eggswift/ESTabBarController: :octocat: ESTabBarController is a Swift model for customize UI, badge and adding animation to tabbar items. Support lottie!

GitHub - eggswift/ESTabBarController: :octocat: ESTabBarController is a Swift model for customize UI, badge and adding animation to tabbar items. Support lottie!

ESTabBarController

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

中文介绍

ESTabBarController is a highly customizable TabBarController component, which is inherited from UITabBarController.

Why?

In real-world development, we may encounter the situation of customizing the UITabBar. For instance: change font style, add animation, and use bigger items. However it's hard to do with UITabBarItem.

With ESTabBarController, You can easily achieve these!

- Feature Description
1 Default style You can get a system-like style by initializing the TabBar with ESTabBarController directly. UITabBarController style: System native style ESTabBarController default style: ES system-like 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": enter image description here ESTabBarController with "More": enter image description here
3 Mix UITabBarItem and ESTabBarItem You can set any item as you want, including UITabBarItem and ESTabBarItem. ESTabBar and UITabBar mixed style: enter image description here ESTabBar and UITabBar mixed style with "More": enter image description here
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: enter image description here
5 Any nesting with UINavigationController Developing withUITabBarController, 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: enter image description here 2. Add selecting animation: enter image description here 3. Customize item's background color: enter image description here 4. Add highlight animation: enter image description here 5. Add animation to prompt users: enter image description here 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, HitTest makes the 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: enter image description here With a special hint style: enter image description here Customize click event: enter image description here
8 Default notification style You can get a system-like notification style by initializing the TabBar with ESTabBarController directly. UITabBarController notification style: enter image description here ESTabBarController system-like notification style: enter image description here
9 Customizable notification style With ESTabBarController, you can: 1. Customize notification animation: enter image description here enter image description here 2. Customize prompt style: enter image description here 3. And much more ...
10 Lottie Through customizing ContentView, you are able to add Lottie's LAAnimationView to Item(s) enter image description here

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

Swift Package Manager

...
dependencies: [
    .package(name: "ESTabBarController", url: "https://github.com/eggswift/ESTabBarController.git", from: "2.9.0-spm")
]
...

CocoaPods

pod "ESTabBarController-swift"

Carthage

github "eggswift/ESTabBarController"

Manually

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 edited, problems occur.
  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:

This advert was placed by GitAds

Acknowledgement

About

ESTabBarController is developed and maintained by Vincent Li. If you have any questions or issues in using ESTabBarController, welcome to issue. If you want to contribute to ESTabBarController, Please submit Pull Request, I will deal with it as soon as possible.

Twitter URL Twitter Follow

License

The MIT License (MIT)

Copyright (c) 2013-2016 eggswift. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory