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.
- CocoaPods
PVSwitchis 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
- Storybord
The simplest way to usePVSwitchis from theStoryboard. Just drag a view into the Storyboard and in theIdentity Inspector (⌘ ⌥ 3)and set theClassfield inCustom Classsection to PVSwitch. The storyboard refreshes itself to bring up the inspectable properties to fiddle around with.
- Code
AddingPVSwitchthrough the code is as easy as using it from the Storyboard.
Considering ourViewControllerhas aContainer ViewandPVSwitchhas 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
}1.0.0 Initial Release
iOS 11.0 or later
Pulkit Vaid
PVSwitch is available under the MIT license.
This Switch is inspired by JTMaterialSwitch



