iOS11開發教程(二十三)iOS11應用檢視實現按鈕的響應(3)

大學霸發表於2018-03-28

iOS11開發教程(二十三)iOS11應用檢視實現按鈕的響應(3)

2.使用程式碼新增按鈕實現的響應

使用程式碼新增的按鈕,實現響應需要使用到addTarget(_:action:for:)方法,其語法形式如下:

func addTarget(_ target: AnyObject?, action: Selector, for controlEvents: UIControlEvents)

其中,引數說明如下:


  • target:表示目標物件。它是動作訊息的傳送方。
  • action:表示選擇器,用來識別動作訊息。它不可以為空。
  • controlEvents:表示控制元件事件。在iOS中有19種控制元件事件,如表2-4所示。


2-4  控制元件事件

控制元件事件

解釋

touchDown

單點觸控按下事件:使用者點觸螢幕,或者又有新手指落下的時候

touchDownRepeat

多點觸控按下事件,點觸計數大於1:使用者按下第二、三、或第四根手指的時候。

touchDragInside

當一次觸控在控制元件視窗內拖動時。

touchDragOutside

當一次觸控在控制元件視窗之外拖動時。

touchDragEnter

當一次觸控從控制元件視窗之外拖動到內部時。

touchDragExit

當一次觸控從控制元件視窗內部拖動到外部時。

touchUpInside

所有在控制元件之內觸控抬起事件。

touchUpOutside

所有在控制元件之外觸控抬起事件(點觸必須開始與控制元件內部才會傳送通知)

touchCancel

所有觸控取消事件,即一次觸控因為放上了太多手指而被取消,或者被上鎖或者電話呼叫打斷。

valueChanged

當控制元件的值發生改變時,傳送通知。用於滑塊、分段控制元件、以及其他取值的控制元件。開發者可以配置滑塊控制元件何時傳送通知

editingDidBegin

當文字控制元件中開始編輯時傳送通知。

editingChanged

當文字控制元件中的文字被改變時傳送通知。

editingDidEnd

當文字控制元件中編輯結束時傳送通知。

editingDidEndOnExit

當文字控制元件內通過按下Enter鍵(或等價行為)結束編輯時,傳送通知。

allTouchEvents

通知所有觸控事件。

allEditingEvents

通知所有關於文字編輯的事件。

applicationReserved

提供一系列應用程式使用的控制事件的值

aystemReserved

控制事件值的範圍內保留供內部使用的框架

AllEvents

通知所有事件。

【示例2-5】以下將實現輕拍按鈕,改變主檢視背景顏色的功能。程式碼如下:


  • 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按鈕後,主檢視的背景變為青色,如圖2.15所示。當再一次輕拍Tap me,Change View Color按鈕,主檢視的背景顏色將會變回原來的白色。


2.14  執行效果                                 2.15  執行效果

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2152283/,如需轉載,請註明出處,否則將追究法律責任。

相關文章