UISwitch(开关控件)是UIKit框架中的一个十分小巧简洁的控件,用于一些简单切换功能的逻辑中。在很多苹果自行开发的iOS应用中,这个控件使用的频率也非常高,最典型的就是“设置”APP中各项系统功能的开启与关闭了。
一、创建一个开关控件
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//定义一个开关控件
let swi = UISwitch(frame: CGRect(x: 120, y: 200, width: 100, height: 40))
//设置开关开启状态的填充色
swi.onTintColor = UIColor.green
//设置开关关闭状态的边界色
swi.tintColor = UIColor.red
//设置开关按钮的颜色
swi.thumbTintColor = UIColor.orange
//添加到主视图
self.view.addSubview(swi)
}
}
开关关闭与打开的效果如下所示:
二、为UISwitch控件添加触发方法
UISwitch也属于用户交互控件,可以为其添加交互方法来处理某些开与关的逻辑。UISwitch继承于UIControl,继承于UIControl的类都可以通过addTarget方法来实现触发方法的添加,代码如下:
swi.addTarget(self, action: #selector(changecolor), for: .valueChanged)
这里实现的触发方法使用带一个参数值的函数,系统传入的参数为UISwitch对象本身,方法实现代码如下:
@objc func changecolor(swi: UISwitch){
if(swi.isOn)
{
self.view.backgroundColor = UIColor.red
}
else
{
self.view.backgroundColor = UIColor.white
}
}
开关打开后的效果如下:
UISwitch的isOn属性是一个Bool类型的值,通过这个值我们可以判断UISwitch控件的开关状态,然后分别进行相应的操作即可。这里在切换UISwitch控件的开关状态时进行了当前视图背景颜色的转换。