Latest 2.7.0
License MIT
Platforms ios 8.3, requires ARC

A Android-like tab bar, drop-in replacement for UISegmentedControl written in Swift.

Live Demo


Requires iOS 8.0 and ARC.


SWSegmentedControl is available through CocoaPods. To install
it, simply add the following line to your Podfile:

pod "SWSegmentedControl"


SWSegmentedControl can only be init in code due to the limitation of @IBDesignable which can’t generate array of item like what UISegmentedControl can do, but I make it renderable anyway just in case you want to play around with it.

Basic usage

let sc = SWSegmentedControl(items: ["A", "B", "C"])
sc.frame = CGRect(x: 0, y: 0, width: 300, height: 44)
sc.selectedSegmentIndex = 2 // default to 0

Change segment programmatically

Setting property directly will change segment without animation

sc.selectedSegmentIndex = 1

If you want fine-grain control over animation, you can use setSelectedSegmentIndex(index: Int, animated: Bool

sc.setSelectedSegmentIndex(1, animated: true)


By default both text and indicator color are the same with tintColor. If you want to change theme independently you can use titleColor and indicatorColor and you can also change font by set font.


Sarun Wongpatcharapakorn ([email protected]) Twitter: @sarunw


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

Latest podspec

    "name": "SWSegmentedControl",
    "version": "2.7.0",
    "summary": "A Android-like tab bar, drop-in replacement for UISegmentedControl.",
    "homepage": "",
    "license": "MIT",
    "authors": {
        "Sarun Wongpatcharapakorn": "[email protected]"
    "source": {
        "git": "",
        "tag": "2.7.0"
    "social_media_url": "",
    "platforms": {
        "ios": "8.3"
    "requires_arc": true,
    "source_files": "Pod/Classes/**/*"

Pin It on Pinterest

Share This