iOS7 style drop in replacement for UISwitch
pod 'SevenSwitch', '~> 2.1'
Swift support was added in version 2.0
. If your project does not support swift you can use 1.4
.
Add SevenSwitch.swift
to your project and add the QuartzCore
framework to your project.
Initializing and adding the switch to the screen
let mySwitch = SevenSwitch()
self.view.addSubview(mySwitch)
When the user manipulates the switch control ("flips" it) a UIControlEvents.valueChanged
event is generated.
mySwitch.addTarget(self, action: #selector(ViewController.switchChanged(_:)), for: UIControlEvents.valueChanged)
You can set images for the on/off states
mySwitch.offImage = UIImage(named: "cross.png")
mySwitch.onImage = UIImage(named: "check.png")
mySwitch.thumbImage = UIImage(named: "thumb.png")
You can set text for the on/off states
mySwitch.offLabel.text = "ON"
mySwitch.onLabel.text = "OFF"
You can also customize the switches colors
mySwitch.thumbTintColor = UIColor(red: 0.19, green: 0.23, blue: 0.33, alpha: 1)
mySwitch.activeColor = UIColor(red: 0.07, green: 0.09, blue: 0.11, alpha: 1)
mySwitch.inactiveColor = UIColor(red: 0.07, green: 0.09, blue: 0.11, alpha: 1)
mySwitch.onTintColor = UIColor(red: 0.45, green: 0.58, blue: 0.67, alpha: 1)
mySwitch.borderColor = UIColor.clear
mySwitch.shadowColor = UIColor.black
You can resize the switch frame to whatever you like to make fatter/skinnier controls
mySwitch.frame = CGRect(x: 0, y: 0, width: 100, height: 50)
You can turn off the rounded look by setting the isRounded
property to false
mySwitch.isRounded = false
SevenSwitch uses Swift as of its 2.0 release. SevenSwitch.swift can be used in Objective-C. See ViewController.m for an example.
SevenSwitch requires iOS 8.0 and above.
SevenSwitch uses ARC as of its 1.0 release.
Made available under the MIT License. Attribution would be nice.