Need help with WormTabStrip?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

148 Stars 32 Forks MIT License 46 Commits 8 Opened issues


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

Services available


Need anything else?

Contributors list

# 58,587
39 commits

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



pod 'WormTabStrip', '~> 1.0'


  1. Download and drop
    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

file for more info.


Ezimet Yusup – Github

Distributed under the MIT license. See

for more information.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.