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
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
- Storybord
The simplest way to usePVSwitch
is from theStoryboard
. Just drag a view into the Storyboard and in theIdentity Inspector (⌘ ⌥ 3)
and set theClass
field inCustom Class
section to PVSwitch. The storyboard refreshes itself to bring up the inspectable properties to fiddle around with.
- Code
AddingPVSwitch
through the code is as easy as using it from the Storyboard.
Considering ourViewController
has aContainer View
andPVSwitch
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
}
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