按鈕主要是實現用戶交互的,即實現響應。按鈕實現響應的方式能夠根據添加按鈕的不一樣分爲兩種:一種是編輯界面添加按鈕實現的響應;另外一種是使用代碼添加按鈕實現的響應。ios
1.編輯界面添加按鈕實現的響應swift
使用編輯界面添加按鈕能夠使用拖動的方式來實現按鈕的響應,它也是最簡單的一種實現響應的方式。編輯器
【示例2-4】如下將實現輕拍按鈕,改變主視圖背景顏色的功能。具體的操做步驟以下:ide
(1)建立一個Single View Application模板類型的項目,命名爲UIButton-response。工具
(2)打開Main.storyboard文件,將主視圖的尺寸設置爲iPhone 4.7-inch。從視圖庫中拖動按鈕控件到主視圖中,將Title設置爲Tap me,Change View Color。spa
(3)使用設置編輯器的三個視圖方式的圖標,將Xcode的界面調整爲如圖2.5所示的效果。這一過程在前面的章節中講解過。.net
圖2.5 調整Xcode的界面code
(4)按住Ctrl鍵拖動界面中的按鈕對象,這時會出現一個藍色的線條,將這個藍色的線條拖動到ViewController.swift文件的空白處中,如圖2.6所示。orm
圖2.6 按住Ctrl鍵拖動界面中的按鈕對象對象
(5)鬆開鼠標後,會彈出聲明關聯插座變量一塊兒進行的對話框(在前面章節中講解過),如圖2.7所示。
圖2.7 彈出聲明關聯插座變量一塊兒進行的對話框
(6)將Connection選項設置爲Action,表示關聯的是一個動做;將Name設置爲tapButton,表示關聯的動做名爲tapButton,如圖2.8所示。
圖2.8 填寫對話框
注意:這裏的Name能夠是任意的。
(7)單擊Connect按鈕,會在ViewController.swift文件中看到如圖2.9所示的代碼。
圖2.9 動做
此時,當用戶輕拍按鈕後,一個叫tapButton()的方法就會被觸發。
注意:以上這一種方式是動做聲明和關聯一塊兒進行的,還有一種先聲明動做後關聯的方式。聲明動做能夠使用關鍵字IBAction。該關鍵字能夠告訴故事面板的界面,此方法是一個操做,且能夠被某個控件觸發。聲明動做的語法形式以下:
@IBAction func 動做名(參數:參數類型){
}
如圖2.10所示,就是在ViewController.swift文件中編寫的動做的聲明代碼。
圖2.10 聲明的動做
注意:在聲明動做後,會在代碼的前面出現一個空心的小圓圈,它表示此動做還未進行關聯。
聲明好動做後,就能夠進行關聯了,首先使用調整窗口中的工具,將Xcode的界面進行調整。將其調整爲和圖2.5同樣的效果。
而後,按住Ctrl鍵拖動界面中的按鈕對象,這時會出現一個藍色的線條,將這個藍色的線條和文件ViewController.swift中的動做進行關聯,如圖2.11所示。
圖2.11 關聯動做
最後,鬆開鼠標後,按鈕對象就與動做成功的關聯在一塊兒了,此時動做前面的空心小圓圈就變爲了實心的小圓圈,它表示此動做已被關聯,效果和圖2.9同樣。
(8)打開ViewController.swift文件,編寫代碼,此代碼將實現按鈕的響應。代碼以下:
import UIKit
class ViewController: UIViewController {
var isYellow:Bool=false
@IBAction func tapButton(sender: AnyObject) {
//判斷主視圖的背景是否爲黃色
if(isYellow){
self.view.backgroundColor=UIColor.whiteColor() //設置主視圖的背景顏色
isYellow=false
}else{
self.view.backgroundColor=UIColor.yellowColor()
isYellow=true
}
}
……
}
此時運行程序,首先會看到如圖2.12的效果。當輕拍Tap me,Change View Color按鈕後,主視圖的背景變爲黃色,如圖2.13所示。當再一次輕拍Tap me,Change View Color按鈕,主視圖的背景顏色將會變回原來的白色。
圖2.12 運行效果 圖2.13 運行效果
2.使用代碼添加按鈕實現的響應
使用代碼添加的按鈕,實現響應須要使用到addTarget(_:action:forControlEvents:)方法,其語法形式以下:
func addTarget(_ target: AnyObject?,
action action: Selector,
forControlEvents controlEvents: UIControlEvents)
其中,參數說明以下:
target:表示目標對象。它是動做消息的發送方。
action:表示選擇器,用來識別動做消息。它不能夠爲空。
controlEvents:表示控件事件。在iOS中有19種控件事件,如表2-4所示。
表2-4 控件事件
【示例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: CGRectMake(90, 545, 225, 30))
button.setTitle("Tap me,Change View Color", forState: UIControlState.Normal) //設置按鈕的標題
button.setTitleColor (UIColor.blackColor(), forState: UIControlState.Normal) //設置按鈕標題的顏色
self.view.addSubview(button)
//實現按鈕的響應
button.addTarget(self, action: "tapbutton", forControlEvents: UIControlEvents.TouchUpInside)
}
func tapbutton(){
//判斷主視圖的背景顏色是否爲青色
if(isCyan){
self.view.backgroundColor=UIColor.whiteColor()
isCyan=false
}else{
self.view.backgroundColor=UIColor.cyanColor()
isCyan=true
}
}
……
}
此時運行程序,首先會看到如圖2.14的效果。當輕拍Tap me,Change View Color按鈕後,主視圖的背景變爲青色,如圖2.15所示。當再一次輕拍Tap me,Change View Color按鈕,主視圖的背景顏色將會變回原來的白色。
圖2.14 運行效果 圖2.15 運行效果
本文選自:iOS 9應用開發基礎教程大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!