Swift(十八)UISwitch

更新: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):

Swift(十八)UISwitch_第1张图片

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)
    }

Swift(十八)UISwitch_第2张图片

c. 从上面图中我们可以看出来:

  • thumbTintColor :圆按钮的颜色
  • onTintColor:开启状态下及开启状态下边框颜色
  • tintColor:关闭状态下及关闭状态下边框颜色
  • onImageoffImage :废的,没什么用

d.利用Target-Action机制,当拨动switch选项时,就会调用UIControlEvents.valueChanged事件,通过addTarget(self, action: #selector(switchClick), for: .valueChanged)方法,就会调用switchClick()方法。

你可能感兴趣的:(Swift(十八)UISwitch)