All Projects → Panevnyk → SwipeVC

Panevnyk / SwipeVC

Licence: MIT License
Animated analog to UITabBarController, with cool interactive TabBar

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to SwipeVC

MaterialesqueTabBar
UIViewController featuring a customisable Tab Bar working with a UIPageViewController.
Stars: ✭ 17 (+0%)
Mutual labels:  tabbar
react-smart-key
Pass anything as key without re-renders
Stars: ✭ 17 (+0%)
Mutual labels:  items
Flutter-Anim
Fluent Flutter Animation library. Describe Sequences & Parallel animation's workflow, setup startDelay, duration and curve, then run !
Stars: ✭ 35 (+105.88%)
Mutual labels:  animator
TabBar
📱 TabBar – highly customizable tab bar for your SwiftUI application.
Stars: ✭ 105 (+517.65%)
Mutual labels:  tabbar
buttons tabbar
A Flutter package that implements a TabBar where each label is a toggle button.
Stars: ✭ 49 (+188.24%)
Mutual labels:  tabbar
react-native-segment-controller
A react-native segment controller(Tab) for both ios and android.
Stars: ✭ 18 (+5.88%)
Mutual labels:  tabbar
KPSmartTabBar
A fully customisable and flexible tab bar controller
Stars: ✭ 37 (+117.65%)
Mutual labels:  tabbar
react-native-viewpager-indicator
修改自react-native-scrollable-tab-view,增加了根据文字内容适配下划线长度的功能。
Stars: ✭ 52 (+205.88%)
Mutual labels:  tabbar
Coroutines-Animations
Use the power of kotlin coroutines to execute your android animations
Stars: ✭ 31 (+82.35%)
Mutual labels:  animator
ossos
Webbased Character Animation System
Stars: ✭ 158 (+829.41%)
Mutual labels:  animator
LockerScreen
Android lock screen,slide to unlock ! 安卓锁屏,上滑解锁,效果酷炫,值得拥有!
Stars: ✭ 81 (+376.47%)
Mutual labels:  animator
SHTransition
SHTransition is a simple library for viewcontroller transition animation in swift.
Stars: ✭ 35 (+105.88%)
Mutual labels:  viewcontroller-transition
Flutter-Bottom-Tab-Bar
No description or website provided.
Stars: ✭ 72 (+323.53%)
Mutual labels:  tabbar
MightyTabBar
How tab bars should work.
Stars: ✭ 72 (+323.53%)
Mutual labels:  tabbar
react-native-bubble-tabbar
🧼 Bubble Tab Bar Component for React Native which supports React Navigation V5 and TypeScript
Stars: ✭ 43 (+152.94%)
Mutual labels:  tabbar
Cool-Readme-ideas
🎉🎉🎉 Some cool ideas for your readme profile, enjoy :)
Stars: ✭ 72 (+323.53%)
Mutual labels:  items
LimitlessUI
Awesome C# UI library that highly reduced limits of your application looks
Stars: ✭ 41 (+141.18%)
Mutual labels:  animator
react-native-smartbar
Maybe this is the best tabbar , support android and ios !
Stars: ✭ 29 (+70.59%)
Mutual labels:  tabbar
react-native-curved-bottom-tabbar
Curved Bottom Tabbar React Native
Stars: ✭ 20 (+17.65%)
Mutual labels:  tabbar
TabBarInteraction
A tab bar example that animate based on user interaction
Stars: ✭ 72 (+323.53%)
Mutual labels:  tabbar

SwipeVC

    

SwipeVC framework created as a cool animated analog to UITabBarController. SwipeVC gives you the possibility to manage screen not only using TabBar controls but simply sliding left and right.

You can add SVCTabBar with different animations to manage those screens. Also, you have the possibility to customize TabBar a lot. Adjust TabBar to top or bottom. Predefine insets by specific rules. Setup different Animators to image and title of the TabBarItem. Also, you can inject your own custom TabBar, TabBarItem, or specific Animator depends on what level of customization you need.

CocoaPods

For SwipeVC, use the following entry in your Podfile:

pod 'SwipeVC'

Then run pod install.

In any file you'd like to use SwipeVC in, don't forget to import the framework with import SwipeVC.

Usage

For use SVCSwipeViewController, you can simply extend you ViewController from SVCSwipeViewController. And add view controllers to viewControllers property.

final class ExampleSwipeViewController: SVCSwipeViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        addViewControllers()
    }

    private func addViewControllers() {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let firstViewController = storyboard.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController
        let secondViewController = storyboard.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
        let thirdViewController = storyboard.instantiateViewController(withIdentifier: "ThirdViewController") as! ThirdViewController
        
        viewControllers = [firstViewController, secondViewController, thirdViewController]
    }
}

For use tabBar, you should inject tabBar property. You can use SVCTabBar or your custom realization. You can set tabBarType property (.top or . bottom) for change tab bar position in SVCSwipeViewController. SVCSwipeViewController have contentInsets, tabBarInsets, viewControllersInsets properties for customize some spaces in different way if you needed.

final class ExampleSwipeViewController: SVCSwipeViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        tabBarInjection()
    }

    private func tabBarInjection() {
        tabBarType = .top
        
        let defaultTabBar = SVCTabBar()
        
        // Init first item
        let firstItem = SVCTabItem(type: .system)
        firstItem.imageViewAnimators = [SVCTransitionAnimator(transitionOptions: .transitionFlipFromTop)]
        firstItem.setImage(UIImage(named: "ic_location_menu_normal")?.withRenderingMode(.alwaysOriginal), for: .normal)
        firstItem.setImage(UIImage(named: "ic_location_menu_selected")?.withRenderingMode(.alwaysOriginal), for: .selected)
        
        // Init second item
        let secondItem = SVCTabItem(type: .system)
        secondItem.imageViewAnimators = [SVCTransitionAnimator(transitionOptions: .transitionFlipFromRight)]
        secondItem.setImage(UIImage(named: "ic_users_menu_normal")?.withRenderingMode(.alwaysOriginal), for: .normal)
        secondItem.setImage(UIImage(named: "ic_users_menu_selected")?.withRenderingMode(.alwaysOriginal), for: .selected)
        
        // Init third item
        let thirdItem = SVCTabItem(type: .system)
        thirdItem.imageViewAnimators = [SVCTransitionAnimator(transitionOptions: .transitionFlipFromBottom)]
        thirdItem.setImage(UIImage(named: "ic_media_menu_normal")?.withRenderingMode(.alwaysOriginal), for: .normal)
        thirdItem.setImage(UIImage(named: "ic_media_menu_selected")?.withRenderingMode(.alwaysOriginal), for: .selected)
        
        defaultTabBar.items = [firstItem, secondItem, thirdItem]
        
        // inject tab bar
        tabBar = defaultTabBar
    }
}

Item animations:

You can use different Animators for SVCTabItem. SwipeVC has SVCBounceAnimator(), SVCRotationAnimator(), SVCImagesAnimator(), SVCTransitionAnimator() ...

let tabBarItem = SVCTabItem(type: .system)
tabBarItem.imageViewAnimators = [SVCBounceAnimator()]
tabBarItem.titleLabelAnimators = [SVCTransitionAnimator(transitionOptions: .transitionFlipFromBottom)]

Or create your own Animator simply realized SVCAnimator protocol.

open class SomeCustomAnimator: SVCAnimator {
    open func select(onView view: UIView) {
        // Some select animation
    }

    open func deselect(onView view: UIView) {
        // Some deselect animation
    }
}

// And simple set animator to your item(image or title)
tabBarItem.imageViewAnimators = [SomeCustomAnimator()]
tabBarItem.titleViewAnimators = [SomeCustomAnimator()]

For use movable line view you should set "defaultTabBar.movableView.isHidden = false". You can customize your movableView (width, height, bouncing, attach).

func tabBarInjection() {
    let defaultTabBar = SVCTabBar()
    showMovableView(onDefaultTabBar: defaultTabBar)

    // Add some items ...

    // inject tab bar
    tabBar = defaultTabBar
}

func showMovableView(onDefaultTabBar defaultTabBar: SVCTabBar) {
    defaultTabBar.movableView.isHidden = false
    defaultTabBar.movableView.backgroundColor = ExampleSwipeViewController.defaultStyleColor
    defaultTabBar.movableView.bouncing = 0.5
    defaultTabBar.movableView.width = 64
    defaultTabBar.movableView.height = 1
    defaultTabBar.movableView.attach = .bottom
}

Example target

You can check more functionality of SwipeVC in Example target.

License

SwipeVC is released under an MIT license. See License.txt for more information.

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].