All Projects → EzimetYusup → Wormtabstrip

EzimetYusup / Wormtabstrip

Licence: mit
🐛 WormTabStrip ViewPager for iOS written in Swift, which gives continuous feedback to the user when scrolling

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Wormtabstrip

SimpleSlider
A simple slider allows you to easily use.
Stars: ✭ 78 (-46.21%)
Mutual labels:  slider, viewpager
Overscroll Decor
Android: iOS-like over-scrolling effect applicable over almost all scrollable Android views.
Stars: ✭ 2,671 (+1742.07%)
Mutual labels:  viewpager, scrollview
React Native Swiper Flatlist
👆 Swiper component implemented with FlatList using Hooks & Typescript + strict automation tests with Detox
Stars: ✭ 217 (+49.66%)
Mutual labels:  slider, scrollview
RDGliderViewController
Control for a floating view gliding over a ViewController
Stars: ✭ 31 (-78.62%)
Mutual labels:  slider, scrollview
Widgetlayout
自定义ViewGroup的集合(有 kotlin 实现分支):提高编写效率和 UI 绘制性能,少嵌套,易用易扩展。
Stars: ✭ 130 (-10.34%)
Mutual labels:  viewpager, scrollview
Banner Slider
Banner slider is an easy to use library for implement image sliders in android apps.
Stars: ✭ 482 (+232.41%)
Mutual labels:  slider, viewpager
AutoImageFlipper
Auto Scrolling Image Pager with Pager Indicator and Text
Stars: ✭ 106 (-26.9%)
Mutual labels:  slider, viewpager
Rdgliderviewcontroller Swift
Control for a floating view gliding over a ViewController Edit
Stars: ✭ 102 (-29.66%)
Mutual labels:  slider, scrollview
Shviewpager
A simple view pager for iOS. Compatible with iOS 8.0 or later.
Stars: ✭ 127 (-12.41%)
Mutual labels:  viewpager
React Native Modalize
A highly customizable modal/bottom sheet that loves scrolling content.
Stars: ✭ 2,119 (+1361.38%)
Mutual labels:  scrollview
Widget
A set of widgets based on jQuery&&javascript. 一套基于jquery或javascript的插件库 :轮播、标签页、滚动条、下拉框、对话框、搜索提示、城市选择(城市三级联动)、日历等
Stars: ✭ 1,579 (+988.97%)
Mutual labels:  slider
Jocircularslider
A highly customisable and reusable circular slider for iOS applications.
Stars: ✭ 128 (-11.72%)
Mutual labels:  slider
Viewpager Swift
Simple View Pager library for swift using UIPageViewController and Scroll View
Stars: ✭ 136 (-6.21%)
Mutual labels:  viewpager
Bubblepagerindicator
A view pager indicator view to deal with a large amount of pages.
Stars: ✭ 127 (-12.41%)
Mutual labels:  viewpager
Pikolo
An android color picker library
Stars: ✭ 142 (-2.07%)
Mutual labels:  slider
React Native Web Swiper
Swiper-Slider for React-Native and React-Native-Web
Stars: ✭ 125 (-13.79%)
Mutual labels:  slider
Xbanner
🔥【图片轮播】支持图片无限轮播,支持AndroidX、自定义指示点、显示提示文字、切换动画、自定义布局,一屏显示多个等功能
Stars: ✭ 1,734 (+1095.86%)
Mutual labels:  viewpager
React Viewport Slider
react-viewport-slider is a react component (obviously) that displays a sequence of contents using 100% of the viewport with and height.
Stars: ✭ 144 (-0.69%)
Mutual labels:  slider
Openslider
A 3-axis 3D printed camera slider project that utilizes Marlin and is made with common components.
Stars: ✭ 140 (-3.45%)
Mutual labels:  slider
React Rotary Knob
🎛 Skinnable knob for React.
Stars: ✭ 134 (-7.59%)
Mutual labels:  slider

Worm Tab Strip

Worm Tab Strip is inspired by android SmartTabStrip, android view pager like library for iOS written in swift.

Basically it was build up by two scroll view, one at the top for holding all the tabs, one for content view for each tab. frame based, not auto layout constraint based.

Swift Version Swift Version License Platform

there are two styles of worm tab strip:

  • Bubble style:

alt text

  • Line style:

alt text

Current example build environment

XCode 11.4

Swift 5

Installation

CocoaPods

pod 'WormTabStrip', '~> 1.0'

Manually

  1. Download and drop WormTabStrip.swift and WormTabStripButton.swift in your project.
  2. Congratulations!

Looking for swift 2.3?

checkout brach swift2.3

Usage example

implement the WormTabStripDelegate in your UIViewController then do

let frame =  CGRect(x: 0, y: 40, width: self.view.frame.size.width, height: self.view.frame.size.height - 40)
let viewPager:WormTabStrip = WormTabStrip(frame: frame)
self.view.addSubview(viewPager) //IMPORTANT!
viewPager.delegate = self
viewPager.eyStyle.wormStyel = .bubble
viewPager.eyStyle.isWormEnable = true
viewPager.eyStyle.spacingBetweenTabs = 15
viewPager.eyStyle.dividerBackgroundColor = .red
viewPager.eyStyle.tabItemSelectedColor = .yellow
//default selected tab
viewPager.currentTabIndex = 3
//center the selected tab
viewPager.shouldCenterSelectedWorm = true
viewPager.buildUI()

Need custom style?

checkout WormTabStripStylePropertyies struct, give your custom style

viewPager.eyStyle.wormStyel = .line
viewPager.eyStyle.isWormEnable = false
viewPager.eyStyle.spacingBetweenTabs = 15
viewPager.eyStyle.dividerBackgroundColor = .red
viewPager.eyStyle.tabItemSelectedColor = .yellow
...

before you you call

viewPager.buildUI() 

Available customization properties

Property Description
wormStyel style of the worm bubble or line
kHeightOfWorm worm height for line style
kHeightOfWormForBubble worm height for bubble style
kHeightOfDivider divider height between top scrollview and conent scrollview
kHeightOfTopScrollView Top scrollView height which hold all tabs
kMinimumWormHeightRatio minimum worm height Ratio, it should be less than 1
kPaddingOfIndicator Padding of tab button, from text to button each side
spacingBetweenTabs space between tab buttons
isWormEnable boolean, if false it will not animate worm
tabItemDefaultFont font for unSelected tab
tabItemSelectedFont font for selected tab
tabItemDefaultColor text color for unSelected tab
tabItemSelectedColor text color for selected tab
WormColor color for worm
topScrollViewBackgroundColor back ground color of top scroll view which hold all tabs
contentScrollViewBackgroundColor back ground color fo content scroll view
dividerBackgroundColor back ground color of divider view between top scroll view and content scroll view

Apps using worm tab strip:

Bagdax News, screen shots:

alt text

Contribute

We would love for you to contribute to WormTabStrip, check the LICENSE file for more info.

Meta

Ezimet Yusup – Github

Distributed under the MIT license. See LICENSE 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].