All Projects → behrad-kzm → Bekcurvetabbar

behrad-kzm / Bekcurvetabbar

Licence: mit
Full Customizable Tabbar with IBInspectables

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Bekcurvetabbar

Nim ios uikit
网易云信 iOS UI 组件,提供聊天界面,文本消息,图片消息,语音消息,视频消息,地理位置消息,自定义消息(阅后即焚)等消息示例。#推荐客户得比特币,首次推荐得0.02BTC,连续推荐得0.03BTC/单,上不封顶。点击参与https://yunxin.163.com/promotion/recommend
Stars: ✭ 1,326 (+820.83%)
Mutual labels:  cocoapods, pod, ui-components
Rsformview
A Cocoapods library designed to easily create forms with multiple data entry fields
Stars: ✭ 84 (-41.67%)
Mutual labels:  cocoapods, pod, ui-components
Abexpandableview
Expandable, collapsible, filterable and single/multi selectable table view.
Stars: ✭ 138 (-4.17%)
Mutual labels:  cocoapods, pod, ui-components
Cocoapods Tips
iOS 라이브러리를 관리하는 CocoaPods Tip정보 모음입니다.
Stars: ✭ 141 (-2.08%)
Mutual labels:  cocoapods, pod
Rn Components Kit
A series of commonly used react-native components
Stars: ✭ 79 (-45.14%)
Mutual labels:  component, ui-components
Hover
🎈 The smartest floating button
Stars: ✭ 81 (-43.75%)
Mutual labels:  cocoapods, ui-components
Slidingtabbar
A custom TabBar view with sliding animation written in Swift.
Stars: ✭ 84 (-41.67%)
Mutual labels:  cocoapods, ui-components
Fwsidemenu
侧滑控件:支持左、右滑动的侧滑菜单,可配置单侧滑动,同时可配置菜单宽度等,更多配置请参考”可设置参数“。参考了QQ用户体验:支持边缘侧滑,解决手势冲突问题(边缘范围可设置)。提供OC使用Demo。
Stars: ✭ 90 (-37.5%)
Mutual labels:  pod, tabbar
Xmui
基于vue2,为公司产品打(zao)造(lun)的(zi)可复用UI组件,文档:
Stars: ✭ 94 (-34.72%)
Mutual labels:  component, ui-components
React Multi Select
A Multi Select component built with and for React
Stars: ✭ 111 (-22.92%)
Mutual labels:  component, ui-components
Quist Ui
快应用UI组件库 https://jdsecretfe.github.io/quist-ui/
Stars: ✭ 108 (-25%)
Mutual labels:  component, ui-components
Ka Table
Lightweight MIT React Table component for both TS and JS with Sorting, Filtering, Grouping, Virtualization, Editing and many more
Stars: ✭ 117 (-18.75%)
Mutual labels:  component, ui-components
Rn Collapsing Tab Bar
Collapsing header with tabs for react native
Stars: ✭ 71 (-50.69%)
Mutual labels:  component, tabbar
Poliopager
A flexible TabBarController with search tab like SNKRS.
Stars: ✭ 133 (-7.64%)
Mutual labels:  cocoapods, tabbar
Gomponents
Declarative view components in Go, that can render to HTML5.
Stars: ✭ 49 (-65.97%)
Mutual labels:  component, ui-components
Wstagsfield
An iOS text field that represents tags, hashtags, tokens in general.
Stars: ✭ 1,013 (+603.47%)
Mutual labels:  cocoapods, ui-components
Swipeabletabbarcontroller
UITabBarController with swipe interaction between its tabs.
Stars: ✭ 919 (+538.19%)
Mutual labels:  cocoapods, tabbar
Ui Box
Blazing Fast React UI Primitive
Stars: ✭ 847 (+488.19%)
Mutual labels:  component, ui-components
Gu
A web ui library for Go. [DEPRECATED]
Stars: ✭ 102 (-29.17%)
Mutual labels:  component, ui-components
Luexpandabletableview
A subclass of UITableView with expandable and collapsible sections
Stars: ✭ 125 (-13.19%)
Mutual labels:  cocoapods, pod

BEKCurveTabbar

Full Customizable Tabbar with IBInspectables

CI Status License Platform

A fun replacement for UITabbar. The Component uses Bézier paths.

Demo

Example

usage:

You can change the appearance by using Xcode Interface Builder or by using the default config (recommended). BEKCurveTabbarController can be setup with your custom ViewModel that conforms to the BEKTabBarViewModelType protocol. you can set your 'tabbar' to BEKCurveTabbar inside Interface Builder or initiate it programatically in the easiest way possible like this:

Note: BEKCurveTabbarController initiates with .initiate()

Default Config Usage:

        //Initiate your viewControllers
        let firstViewController = UIViewController()
        firstViewController.view.backgroundColor = .red
        firstViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .search, tag: 0)
        let secondViewController = UIViewController()
        firstViewController.view.backgroundColor = .white
        secondViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .favorites, tag: 1)
        let thirdViewController = UIViewController()
        thirdViewController.view.backgroundColor = .blue
        thirdViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .more, tag: 2)
        
        //get instance of BEKCurveTabbarController
        let tabBarViewController = BEKCurveTabbarController.instantiate()
        
        //set viewControllers to the tabbar
        tabBarViewController.setViewControllers([firstViewController, secondViewController, thirdViewController], animated: true)

Customized Config Usage:

Create a new struct that conforms to BEKTabBarViewModelType :

struct MyCustomTabBarViewModel: BEKTabBarViewModelType {
    let heightRatio: CGFloat = CGFloat(TabbarHeightRatios.bestSize.rawValue)
    let containerColor: UIColor = .white
    let hideTitle: Bool = false
    let animationDuration: CGFloat = 0.3
    let animated: Bool = true
    let shadowColor: UIColor = UIColor(red: 0.353, green: 0.784, blue: 1, alpha: 1.0)
    let shadowRadius: CGFloat = 16
    let containerBorderWidth: CGFloat = 1.0
    let containerBorderColor: UIColor = .gray
    let selectedTextColor: UIColor = .yellow
    let selectedTextFont: UIFont = .systemFont(ofSize: 13)
    let normalTextColor: UIColor = .lightGray
    let normalTextFont: UIFont = .systemFont(ofSize: 11)
    let topCornerRadius: CGFloat = TabbarHeightRatios.bestSize.cornerRadius()
    let bottomCornerRadius: CGFloat = 0
    let containerInsets: UIEdgeInsets = TabbarHeightRatios.bestSize.containerInsets()
    let selectionCircleRadius: CGFloat = TabbarHeightRatios.bestSize.circleRadius()
    let selectionCircleBorderWidth: CGFloat = 0.0
    let selectionCircleBorderColor: UIColor = .clear
    let selectionCircleBackgroundColor: UIColor = UIColor(red: 0.353, green: 0.784, blue: 1, alpha: 1.0)
    let textOffset: CGFloat = 0
    init() {}
}

Note: TabbarHeightRatios.bestSize provides you computed values for different iOS environments. (recommended)

Now you just need to pass your viewModel to .setupViewModel(viewModel: BEKTabBarViewModelType) function.

        //1- Initiate your viewControllers
        let firstViewController = UIViewController()
        firstViewController.view.backgroundColor = .red
        firstViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .search, tag: 0)
        let secondViewController = UIViewController()
        firstViewController.view.backgroundColor = .white
        secondViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .favorites, tag: 1)
        let thirdViewController = UIViewController()
        thirdViewController.view.backgroundColor = .blue
        thirdViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .more, tag: 2)
        
        //2- get instance of BEKCurveTabbarController
        let tabBarViewController = BEKCurveTabbarController.instantiate()
        
        //3- Config your own TabBar ViewModel
        let myViewModel = MyCustomTabBarViewModel()
        
        //4- setup TabBar Controller with you viewModel
        tabBarViewController.setupViewModel(viewModel: myViewModel)
        
        //5- set viewControllers to the tabbar
        tabBarViewController.setViewControllers([firstViewController, secondViewController, thirdViewController], animated: true)
        return tabBarViewController

Installation

  pod 'BEKCurveTabbar', :git => 'https://github.com/behrad-kzm/BEKCurveTabbar.git'

Author

Behrad Kazemi, [email protected], bekapps.com Visit Web Site

License

BEKCurveTabbar is available under the MIT license. See the LICENSE file for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].