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

相关文章
相关标签/搜索