1.声明控件
//定义控件x:30 y:100 width:80 height:40
let switcher = UISwitch(frame: CGRect(x: 30, y: 100, width: 80, height: 40))
self.view.addSubview(switcher)
//设置开启状态显示的颜色
switcher.onTintColor = UIColor.red
//设置关闭状态的颜色
switcher.tintColor = UIColor.green
//滑块上小圆点的颜色
switcher.thumbTintColor = UIColor.yellow
运行效果如下:
on.png
off.png
2.添加状态监听器
//添加状态变化监听器
switcher.addTarget(self, action: #selector(switchDidChange(_:)), for: .valueChanged)
@objc
func switchDidChange(_ sender: UISwitch){
//打印当前值
print(sender.isOn)
}
添加状态监听器
3.switch状态保存
switcher一般用来保存用户的偏好设置,所以当前switcher的状态应该能够长期有效,我们可以使用UserDefaults来存储设置
UserDefaults.standard.set(sender.isOn, forKey: "switchState")
首先在AppDelegate中设置初始值
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
//设置初始值
UserDefaults.standard.set(true, forKey: "switchState")
return true
}
接着在定义的时候,获取这个值
override func viewDidLoad() {
super.viewDidLoad()
//定义控件x:30 y:100 width:80 height:40
let switcher = UISwitch(frame: CGRect(x: 30, y: 100, width: 80, height: 40))
self.view.addSubview(switcher)
//设置开启状态显示的颜色
switcher.onTintColor = UIColor.red
//设置关闭状态的颜色
switcher.tintColor = UIColor.green
//滑块上小圆点的颜色
switcher.thumbTintColor = UIColor.yellow
//添加状态变化监听器
switcher.addTarget(self, action: #selector(switchDidChange(_:)), for: .valueChanged)
//获取保存的状态值
let state = UserDefaults.standard.bool(forKey: "switchState")
switcher.setOn(state, animated: true)
}
当switcher状态改变的时候应该把当前状态保存起来
@objc
func switchDidChange(_ sender: UISwitch){
//把当前状态保存起来
UserDefaults.standard.set(sender.isOn, forKey: "switchState")
//打印当前值
print(sender.isOn)
}
关于UISwitcher基本的用法以及保存状态的方法就介绍到这里,更多更复杂的使用方法,小伙伴可以根据遇到的具体情况查资料
网友评论