Home

Awesome

AIFlatSwitch

A smooth, nice looking and IBDesignable flat design switch for iOS. Can be used instead of UISwitch.

Inspired by Creativedash's Dribbble post here

<p align="center"> <a target="_blank" rel="noopener noreferrer" href="http://dribbble.com/shots/1631598-On-Off"> <img src="https://s3.amazonaws.com/f.cl.ly/items/1p0w3B0E3m2I2k3e0z1Q/onoff.gif" width="200" max-width="80%" alt="Flat switch animation"> </a> </p> <p align="center"> <img src="https://img.shields.io/badge/Swift-5.0-orange.svg"/> <a href="https://cocoapods.org/pods/AIFlatSwitch"> <img src="https://img.shields.io/cocoapods/v/AIFlatSwitch.svg" alt="cocoapods"/> </a> </p> <p align="center"> <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square"/> </p>

Requirements

Usage

Creating the flat switch

var flatSwitch = AIFlatSwitch(frame: CGRectMake(0, 0, 50, 50))

Methods

To change its selected state:

flatSwitch.isSelected = true

or:

flatSwitch.setSelected(true, animated: true)

To listen to its state changes:

@IBAction func handleSwitchValueChange(sender: AnyObject) {
		if let flatSwitch = sender as? AIFlatSwitch {
			print(flatSwitch.isSelected)
		}
	}

Animation observer callbacks:

flatSwitch.selectionAnimationDidStart = { isSelected in
    print("New state: \(isSelected)")
}

flatSwitch.selectionAnimationDidStop = { isSelected in
    print("State when animation stopped: \(isSelected)")
}

Styling the switch:

flatSwitch.lineWidth = 2.0
flatSwitch.strokeColor = UIColor.blue
flatSwitch.trailStrokeColor = UIColor.red
flatSwitch.backgroundLayerColor = UIColor.red
flatSwitch.animatesOnTouch = false

Contribution guidelines

License

AIFlatSwitch is released under the MIT license. See LICENSE for details.

animated check button, checkmark