iOS11開發(fā)教程(二十三)iOS11應用視圖實現(xiàn)按鈕的響應(3)
2.使用代碼添加按鈕實現(xiàn)的響應
使用代碼添加的按鈕透硝,實現(xiàn)響應需要使用到addTarget(_:action:for:)方法,其語法形式如下:
func addTarget(_ target: AnyObject?, action: Selector, for controlEvents: UIControlEvents)
其中迷帜,參數(shù)說明如下:
target:表示目標對象。它是動作消息的發(fā)送方余爆。
action:表示選擇器斋配,用來識別動作消息。它不可以為空苛预。
controlEvents:表示控件事件句狼。在iOS中有19種控件事件,如表2-4所示热某。
【示例2-5】以下將實現(xiàn)輕拍按鈕腻菇,改變主視圖背景顏色的功能。代碼如下:
import UIKit
class ViewController: UIViewController {
? ??var isCyan:Bool=false
? ??override func viewDidLoad() {
? ? ? ??super.viewDidLoad()
? ? ? ??// Do any additional setup after loading the view, typically from a nib.
? ? ? ??let button=UIButton(frame: CGRect(x: 90, y: 545, width: 225, height: 30))
? ? ? ? button.setTitle("Tap me,Change View Color", for: UIControlState())?????????????????????? //設置按鈕的標題
? ? ? ? button.setTitleColor (UIColor.black, for: UIControlState())???????????????????????????????????????? //設置按鈕標題的顏
? ? ? ??self.view.addSubview(button)
??button.addTarget(self, action: #selector(ViewController.tapbutton), for: UIControlEvents.touchUpInside)
? ??}
? ??@objc func tapbutton(){
? ? ? ??if(isCyan){
? ? ? ? ? ??self.view.backgroundColor=UIColor.white
? ? ? ? ? ??isCyan=false
? ? ? ??}else{
? ? ? ? ? ??self.view.backgroundColor=UIColor.cyan
? ? ? ? ? ??isCyan=true
? ? ? ??}
? ??}
……
}
此時運行程序昔馋,首先會看到如圖2.14的效果筹吐。當輕拍Tap me,Change View Color按鈕后,主視圖的背景變?yōu)榍嗌囟簦鐖D2.15所示丘薛。當再一次輕拍Tap me,Change View Color按鈕,主視圖的背景顏色將會變回原來的白色邦危。