更新:2018.05.24
整理了一下demo:SwiftDemo
在一些APP中相速,經(jīng)常出現(xiàn)的滑動開關(guān)晚吞,就是用UISwitch來實現(xiàn)的涵叮,UISwitch可以輕松的實現(xiàn)一個具有開和關(guān)的選擇功能控件。
1. 創(chuàng)建UISwitch
let uiSwitch = UISwitch(frame: CGRect(x: 100, y: 50, width: 100, height: 100))
uiSwitch.setOn(true, animated: true)
view.addSubview(uiSwitch)
a. 在上面代碼中挪捕,我們創(chuàng)建了一個位置在 (100,50),寬高都是100的UISwitch控件争便,但你運(yùn)行項目级零,所得到的控件的大小并不是(100,100):
Apple官方說明滞乙,對UISwitch設(shè)置大小是無效的奏纪,其永遠(yuǎn)保持在(51,31)的大小。
b. 第二行代碼中斩启,設(shè)置了switch的狀態(tài)為開啟狀態(tài)亥贸,并在界面繪制的時候伴隨動畫,如果第二個屬性設(shè)置的是false就不會有動畫浇垦。
2. 設(shè)置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:開啟狀態(tài)下及開啟狀態(tài)下邊框顏色
- tintColor:關(guān)閉狀態(tài)下及關(guān)閉狀態(tài)下邊框顏色
- onImage和offImage :廢的荣挨,沒什么用
d.利用Target-Action機(jī)制,當(dāng)撥動switch選項時朴摊,就會調(diào)用UIControlEvents.valueChanged事件默垄,通過addTarget(self, action: #selector(switchClick), for: .valueChanged)
方法,就會調(diào)用switchClick()
方法甚纲。