Skip to content
🐛WormTabStrip ViewPager for iOS written in Swift, which gives continuous feedback to the user when scrolling
Branch: master
Clone or download
EzimetYusup Merge pull request #17 from creatiolabsmx/patch-1
Update Readme for important funciton
Latest commit 738f470 Aug 7, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
WormTabStrip updated to swift4 Jan 1, 2018
.gitignore Update .gitignore Sep 22, 2017
.swift-version updated to swift4 Jan 1, 2018
LICENSE Initial commit Nov 6, 2016 Update Readme for important funciton Aug 7, 2018
WormTabStrip.podspec updated to swift4 Jan 1, 2018

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 9.2

Swift 4



pod 'WormTabStrip', '~> 1.0'


  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

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


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


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


Ezimet Yusup – Github

Distributed under the MIT license. See LICENSE for more information.

You can’t perform that action at this time.