pulkit-vaid / PVSwitch

A Customizable iOS Switch with Inspectable Properties.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PVSwitch

CI Status Version License Platform

Overview

PVSwitch is a Customizable Switch with the design inspired by Android's Switch.

This library has customizable properties that can be tweaked right from the Storyboard i.e. Inspectable Properties, making you play around with the Switch UI at compile time.

                 

Installation

  • CocoaPods
    PVSwitch is available on CocoaPods. You can use this library by adding the following command onto your Podfile:
pod 'PVSwitch'
  • Manual
    Just Drag+Drop the Source file into yor project. PVSwitch/Source/PVSwitch.swift

Usage


  • Storybord
    The simplest way to use PVSwitch is from the Storyboard. Just drag a view into the Storyboard and in the Identity Inspector (⌘ ⌥ 3) and set the Class field in Custom Class section to PVSwitch. The storyboard refreshes itself to bring up the inspectable properties to fiddle around with.


  • Code
    Adding PVSwitch through the code is as easy as using it from the Storyboard.
    Considering our ViewController has a Container View and PVSwitch has to be added as a subview.
class ViewController: UIViewController {
	let switchByCode = PVSwitch()
	@IBOutlet var containerView: UIView!

	override func viewDidLoad() {
		super.viewDidLoad()
		self.setupSwitch()
	}
}

Setting up the Switch

private func setupSwitch() {
	//Customize the Properties if the Switch is added by Code
	switchByCode.isOn = true

	switchByCode.isBounceEnabled = false

	switchByCode.thumbOnTintColor = .white
	switchByCode.trackOnTintColor = .green

	switchByCode.thumbOffTintColor = .darkGray
	switchByCode.trackOffTintColor = .lightGray

        //To handle the events
	switchByCode.addTarget(self, action: #selector(ViewController.codeSwitchAction(sender:)), for: .valueChanged)
	containerView.addSubview(switchByCode)
}

One last thing to do for this to work. In viewDidLayoutSubviews make sure to update the frames of the PVSwitch to be the container's bounds.

override func viewDidLayoutSubviews() {
	super.viewDidLayoutSubviews()

	//Make sure to set the frame of the switch if the Switch is added by Code
	switchByCode.frame = containerView.bounds
}

Change History

1.0.0 Initial Release

Requirements

iOS 11.0 or later

Author

Pulkit Vaid

License

PVSwitch is available under the MIT license.

Credits

This Switch is inspired by JTMaterialSwitch

About

A Customizable iOS Switch with Inspectable Properties.

License:MIT License


Languages

Language:Swift 95.7%Language:Ruby 4.3%