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

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

2.使用代碼添加按鈕實現的響應框架

使用代碼添加的按鈕,實現響應須要使用到addTarget(_:action:for:)方法,其語法形式以下:ide

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

其中,參數說明以下:.net

  • target:表示目標對象。它是動做消息的發送方。
  • action:表示選擇器,用來識別動做消息。它不能夠爲空。
  • controlEvents:表示控件事件。在iOS中有19種控件事件,如表2-4所示。

表2-4  控件事件對象

控件事件教程

解釋事件

touchDownci

單點觸摸按下事件:用戶點觸屏幕,或者又有新手指落下的時候開發

touchDownRepeat

多點觸摸按下事件,點觸計數大於1:用戶按下第2、3、或第四根手指的時候。

touchDragInside

當一次觸摸在控件窗口內拖動時。

touchDragOutside

當一次觸摸在控件窗口以外拖動時。

touchDragEnter

當一次觸摸從控件窗口以外拖動到內部時。

touchDragExit

當一次觸摸從控件窗口內部拖動到外部時。

touchUpInside

全部在控件以內觸摸擡起事件。

touchUpOutside

全部在控件以外觸摸擡起事件(點觸必須開始與控件內部纔會發送通知)。

touchCancel

全部觸摸取消事件,即一次觸摸由於放上了太多手指而被取消,或者被上鎖或者電話呼叫打斷。

valueChanged

當控件的值發生改變時,發送通知。用於滑塊、分段控件、以及其餘取值的控件。開發者能夠配置滑塊控件什麼時候發送通知

editingDidBegin

當文本控件中開始編輯時發送通知。

editingChanged

當文本控件中的文本被改變時發送通知。

editingDidEnd

當文本控件中編輯結束時發送通知。

editingDidEndOnExit

當文本控件內經過按下回車鍵(或等價行爲)結束編輯時,發送通知。

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  運行效果

相關文章
相關標籤/搜索