UISegmentedControl and UISwitch in ios (Swift-5)


BetterSegmentedControl

BetterSegmentedControl is an easy to use, customizable replacement for UISegmentedControl and UISwitch written in Swift.



  • language: Swift 5.1
  • platform: ios
  • device: iphone
  • license: MIT

Tag

Download

Installation

Swift Package Manager

BetterSegmentedControl is available through Swift Package Manager. To install it, simply go to Xcode under File > Swift Packages > Add Package Dependency...

CocoaPods

BetterSegmentedControl is available through CocoaPods. To install it, simply add the following line to your Podfile:
# Swift 5.1
pod 'BetterSegmentedControl', '~> 1.3'

# Swift 4
pod 'BetterSegmentedControl', '1.0'

# Swift 3 / Objective-C
pod 'BetterSegmentedControl', '0.8'

Carthage

If you prefer using Carthage, simply add BetterSegmentedControl to your Cartfile:
# Swift 5.1
github "gmarm/BetterSegmentedControl" ~> 1.3

# Swift 4
github "gmarm/BetterSegmentedControl" 1.0

# Swift 3 / Objective-C
github "gmarm/BetterSegmentedControl" 0.8

Manually

If you prefer not to use CocoaPods or Carthage, you can integrate BetterSegmentedControl into your project manually.

Usage

let control = BetterSegmentedControl(
    frame: CGRect(x: 0, y: 0, width: 300, height: 44),
    segments: LabelSegment.segments(withTitles: ["One", "Two", "Three"],
    normalFont: UIFont(name: "HelveticaNeue-Light", size: 14.0)!,
    normalTextColor: .lightGray,
    selectedFont: UIFont(name: "HelveticaNeue-Bold", size: 14.0)!,
    selectedTextColor: .white),
    index: 1,
    options: [.backgroundColor(.darkGray),
              .indicatorViewBackgroundColor(.blue)])
control.addTarget(self, action: #selector(ViewController.controlValueChanged(_:)), for: .valueChanged)
view.addSubview(control)
You can find different ways of using it (such as by designing it in a Storyboard file) in the example project. To run the example project, clone the repo, and run pod install from the Example directory first.

Features

  • Can be used as a segmented control or switch
  • Plethora of customizable options from colors to insets, radii, animations
  • Use text or icons as segments, or add your own custom segments
  • Designable straight in Interface Builder
  • Customizable behavior
  • Right-to-left languages support

0 Comments: