更新:2018.05.24
整理了一下demo:SwiftDemo
在一些APP中,经常出现的滑动开关,就是用UISwitch来实现的,UISwitch可以轻松的实现一个具有开和关的选择功能控件。
1. 创建UISwitch
let uiSwitch = UISwitch(frame: CGRect(x: 100, y: 50, width: 100, height: 100))
uiSwitch.setOn(true, animated: true)
view.addSubview(uiSwitch)
a. 在上面代码中,我们创建了一个位置在 (100,50),宽高都是100的UISwitch控件,但你运行项目,所得到的控件的大小并不是(100,100):
Apple官方说明,对UISwitch设置大小是无效的,其永远保持在(51,31)的大小。
b. 第二行代码中,设置了switch的状态为开启状态,并在界面绘制的时候伴随动画,如果第二个属性设置的是false就不会有动画。
2. 设置UISwitch
uiSwitch.thumbTintColor = UIColor.red
uiSwitch.onTintColor = UIColor.green
uiSwitch.tintColor = UIColor.blue
// ios7之后,这两个属性没有作用
uiSwitch.onImage = UIImage(named: "tab1")
uiSwitch.offImage = UIImage(named: "tab2")
uiSwitch.addTarget(self, action: #selector(switchClick), for: .valueChanged)
func switchClick(uiSwitch:UISwitch) {
print(uiSwitch.isOn)
}
c. 从上面图中我们可以看出来:
- thumbTintColor :圆按钮的颜色
- onTintColor:开启状态下及开启状态下边框颜色
- tintColor:关闭状态下及关闭状态下边框颜色
- onImage和offImage :废的,没什么用
d.利用Target-Action机制,当拨动switch选项时,就会调用UIControlEvents.valueChanged事件,通过addTarget(self, action: #selector(switchClick), for: .valueChanged)
方法,就会调用switchClick()
方法。