1. 程式人生 > >iOS 9應用開發教程之ios9中實現button的響應

iOS 9應用開發教程之ios9中實現button的響應

ins color cto div eve class sub avi src

iOS 9應用開發教程之ios9中實現button的響應

IOS9實現button的響應

button主要是實現用戶交互的。即實現響應。button實現響應的方式能夠依據加入button的不同分為兩種:一種是編輯界面加入button實現的響應;還有一種是使用代碼加入button實現的響應。

1.編輯界面加入button實現的響應

使用編輯界面加入button能夠使用拖動的方式來實現button的響應,它也是最簡單的一種實現響應的方式。

【演示樣例2-4】下面將實現輕拍button,改變主視圖背景顏色的功能。詳細的操作過程例如以下:

1)創建一個

Single View Application模板類型的項目,命名為UIButton-response

2)打開Main.storyboard文件,將主視圖的尺寸設置為iPhone 4.7-inch。從視圖庫中拖動button控件到主視圖中。將Title設置為Tap me,Change View Color

3)使用設置編輯器的三個視圖方式的圖標,將Xcode的界面調整為如圖2.5所看到的的效果。這一過程在前面的章節中解說過。

技術分享

2.5 調整Xcode的界面

4)按住Ctrl鍵拖動界面中的button對象,這時會出現一個藍色的線條,將這個藍色的線條拖動到

ViewController.swift文件的空白處中,如圖2.6所看到的。

技術分享

2.6 按住Ctrl鍵拖動界面中的button對象

5)松開鼠標後。會彈出聲明關聯插座變量一起進行的對話框(在前面章節中解說過)。如圖2.7所看到的。

技術分享

2.7 彈出聲明關聯插座變量一起進行的對話框

6)將Connection選項設置為Action。表示關聯的是一個動作;將

Name設置為tapButton,表示關聯的動作名為tapButton,如圖2.8所看到的。

技術分享

2.8 填寫對話框

註意:這裏的Name能夠是隨意的。

7)單擊Connectbutton。會在ViewController.swift文件裏看到如圖2.9所看到的的代碼。

技術分享

2.9 動作

此時,當用戶輕拍button後。一個叫tapButton()的方法就會被觸發。

註意:以上這一種方式是動作聲明和關聯一起進行的,另一種先聲明動作後關聯的方式。

聲明動作能夠使用keywordIBAction

該keyword能夠告訴故事面板的界面,此方法是一個操作,且能夠被某個控件觸發。聲明動作的語法形式例如以下:

  • @IBAction func 動作名(參數:參數類型){

  • }

如圖2.10所看到的,就是在ViewController.swift文件裏編寫的動作的聲明代碼。

技術分享

2.10 聲明的動作

註意:在聲明動作後,會在代碼的前面出現一個空心的小圓圈,它表示此動作還未進行關聯。

聲明好動作後,就能夠進行關聯了,首先使用調整窗體中的工具,將Xcode的界面進行調整。將其調整為和圖2.5一樣的效果。

然後,按住Ctrl鍵拖動界面中的button對象,這時會出現一個藍色的線條,將這個藍色的線條和文件ViewController.swift中的動作進行關聯,如圖2.11所看到的。

技術分享

2.11 關聯動作

最後,松開鼠標後,button對象就與動作成功的關聯在一起了。此時動作前面的空心小圓圈就變為了實心的小圓圈,它表示此動作已被關聯,效果和圖2.9一樣。

8)打開ViewController.swift文件,編寫代碼。此代碼將實現button的響應。代碼例如以下:

  • 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 Colorbutton後,主視圖的背景變為黃色,如圖2.13所看到的。當再一次輕拍Tap me,Change View Colorbutton。主視圖的背景顏色將會變回原來的白色。

技術分享

2.12 執行效果 2.13 執行效果

2.使用代碼加入button實現的響應

使用代碼加入的button,實現響應須要使用到addTarget(_:action:forControlEvents:)方法,其語法形式例如以下:

  • func addTarget(_ target: AnyObject?,

  • action action: Selector,

  • forControlEvents controlEvents: UIControlEvents)

當中。參數說明例如以下:

  • target:表示目標對象。它是動作消息的發送方。

  • action:表示選擇器,用來識別動作消息。它不能夠為空。

  • controlEvents:表示控件事件。在iOS中有19種控件事件,如表2-4所看到的。

2-4 控件事件

技術分享

【演示樣例2-5】下面將實現輕拍button,改變主視圖背景顏色的功能。代碼例如以下:

  • 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.

  • //加入button對象

  • 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的響應

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

技術分享

2.14 執行效果 2.15 執行效果

本文選自:iOS 9應用開發基礎教程大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!

?

iOS 9應用開發教程之ios9中實現button的響應