Switch which contains label
LabelSwitch is available through CocoaPods. To install
it, simply add the following line to your Podfile:
pod 'LabelSwitch'
You can create the view through code or InterfaceBuilder
Set the position constarint for the switch, and set the width and height constraint to larger than zero.
let ls = LabelSwitchConfig(text: "Text1",
textColor: .white,
font: UIFont.boldSystemFont(ofSize: 15),
backgroundColor: .red)
let rs = LabelSwitchConfig(text: "Text2",
textColor: .white,
font: UIFont.boldSystemFont(ofSize: 20),
backgroundColor: .green)
// Set the default state of the switch,
let labelSwitch = LabelSwitch(center: .zero, leftConfig: ls, rightConfig: rs)
// Set the appearance of the circle button
labelSwitch.circleShadow = false
labelSwitch.circleColor = .red
// Make switch be triggered by tapping on any position in the switch
labelSwitch.fullSizeTapEnabled = true
// Set the delegate to inform when the switch was triggered
labelSwitch.delegate = self
extension ViewController: LabelSwitchDelegate {
func switchChangToState(sender: LabelSwitch) {
switch sender.curState {
case .L: print("left state")
case .R: print("right state")
}
}
}
you can also make the switch background to be image or gradient color
// gradient color
init(text: String, textColor: UIColor, font: UIFont, gradientColors: [CGColor], startPoint: CGPoint, endPoint: CGPoint)
// image
init(text: String, textColor: UIColor, font: UIFont, image: UIImage?)
LabelSwitch is available under the MIT license. See the LICENSE file for more info.
logo by @Tobaloidee