A Android-like tab bar, drop-in replacement for UISegmentedControl written in Swift.
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.
let sc = SWSegmentedControl(items: ["A", "B", "C"])
sc.frame = CGRect(x: 0, y: 0, width: 300, height: 44)
sc.selectedSegmentIndex = 2 // default to 0
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.