TOSegmentedControl is a flexible and customizable replacement for UISegmentedControl, providing additional features and customization options. It is a powerful tool for displaying segmented controls with different styles and appearances.


  • Support for customizing colors, fonts, and appearances.
  • Flexible layout options.
  • Support for both horizontal and vertical segmented controls.
  • Ability to set individual segments as selected.
  • Customizable content for each segment.
  • Integration with Interface Builder and Storyboards.
  • Compatibility with different versions of iOS.


TOSegmentedControl can be easily installed and integrated into your project using CocoaPods.

pod 'TOSegmentedControl'


Using TOSegmentedControl is simple and straightforward. Follow the steps below to get started.

Step 1: Import TOSegmentedControl

First, import TOSegmentedControl in your view controller:

import TOSegmentedControl

Step 2: Add TOSegmentedControl to your view

Add TOSegmentedControl to your view hierarchy, either programmatically or using Interface Builder.

Step 3: Customize Appearance

Customize the appearance and behavior of TOSegmentedControl using various properties:

  • backgroundColor: Change the background color of the segmented control.
  • segmentFont: Set the font for the segments.
  • selectedSegmentFont: Set the font for the selected segment.
  • segmentTextColor: Change the text color of the segments.
  • selectedSegmentTextColor: Change the text color for the selected segment.
  • segmentBackgroundColor: Change the background color of the segments.
  • selectedSegmentBackgroundColor: Change the background color for the selected segment.
  • segmentBorderColor: Change the border color of the segments.
  • selectedSegmentBorderColor: Change the border color for the selected segment.
segmentedControl.backgroundColor = .white
segmentedControl.segmentFont = UIFont.systemFont(ofSize: 16)
segmentedControl.selectedSegmentFont = UIFont.boldSystemFont(ofSize: 16)
segmentedControl.segmentTextColor = .black
segmentedControl.selectedSegmentTextColor = .white
segmentedControl.segmentBackgroundColor = .lightGray
segmentedControl.selectedSegmentBackgroundColor = .blue
segmentedControl.segmentBorderColor = .darkGray
segmentedControl.selectedSegmentBorderColor = .blue

Step 4: Handle segment selection

Use the delegate method to respond to segment selection changes:

class MyViewController: UIViewController, TOSegmentedControlDelegate {
    // ...
    func segmentedControl(_ segmentedControl: TOSegmentedControl, didSelectSegment segment: Int) {
        // Handle segment selection
    // ...


Here are some examples demonstrating the usage and customization options available with TOSegmentedControl.

Basic Usage

Creating a simple segmented control with default appearance:

// Create a TOSegmentedControl
let segmentedControl = TOSegmentedControl(frame: CGRect(x: 50, y: 50, width: 300, height: 40))
segmentedControl.delegate = self

// Add segments
segmentedControl.segments = ["Segment 1", "Segment 2", "Segment 3"]

// Add the segmented control to the view


Customize various attributes of TOSegmentedControl:

// Customize appearance
segmentedControl.backgroundColor = .white
segmentedControl.segmentFont = UIFont.systemFont(ofSize: 16)
segmentedControl.segmentTextColor = .black
segmentedControl.segmentBackgroundColor = .lightGray

// Customize selected segment appearance
segmentedControl.selectedSegmentTextColor = .white
segmentedControl.selectedSegmentBackgroundColor = .blue

// Set initial selected segment
segmentedControl.selectedSegmentIndex = 1


TOSegmentedControl provides a flexible and customizable solution for implementing segmented controls in your iOS app. It offers extensive customization options and ease of use. With TOSegmentedControl, you can create stunning segmented controls with different styles and appearances effortlessly.