創(chuàng)建多個(gè) Outlet 教程

作者:IOSCREATER,原文鏈接,原文日期:2016/02/08
譯者:EyreFree;校對(duì):DianQK;定稿:CMB

為多個(gè)對(duì)象創(chuàng)建多個(gè) Outlet 是比較費(fèi)時(shí)費(fèi)力的一件事情。而且多個(gè)對(duì)象也可能共享同一個(gè)的 Outlet。在本教程中,我們將會(huì)根據(jù)按鈕的 tag 值來(lái)創(chuàng)建多個(gè) Outlet。本教程使用 Xcode 7.2 作為開(kāi)發(fā)工具,使用 Swift 2.1 和 iOS 9 進(jìn)行構(gòu)建。

打開(kāi) Xcode 并新建一個(gè) Single View Application。Product Name 項(xiàng)填寫(xiě) IOS9MultipleOutletsTutorial,然后填寫(xiě)你的 Organization Name 和 Organization Identifier。Language 項(xiàng)選擇 Swift,并且確保 Devices 項(xiàng)只選擇了 iPhone。

打開(kāi) StoryBoard 并從 Object Library 拖一個(gè)按鈕到主視圖的左上方。打開(kāi) Attribute Inspector(屬性檢查器)并將 View 的 Tag 設(shè)為 10。

復(fù)制此按鈕,并將該按鈕放置于和第一個(gè)按鈕相同一行的主視圖右上角位置,該按鈕和第一個(gè)按鈕具有相同的 Tag。
接下來(lái),從 Object Library 中拖出另一個(gè)按鈕到主視圖中,將該按鈕放在左上角按鈕的下面。選中這個(gè)按鈕并且打開(kāi) Attribute Inspector,將 View 中的 Tag 設(shè)為 20。然后再次復(fù)制剛添加的這個(gè)按鈕并將復(fù)制的按鈕放在剛添加的按鈕的右方。到這里 Storyboard 應(yīng)該是如下圖所示的樣子:

選中主視圖然后點(diǎn)擊 Interface Builder 右下角的 Resolve Auto Layout Issues 按鈕。選擇 All Views 中的 Reset to Suggested Constraint 這一選項(xiàng)。

打開(kāi)文件 ViewController.swift 并將方法 viewDidLoad 改為如下代碼塊所示:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    for subview in view.subviews where subview.tag == 10 {
        let button = subview as! UIButton
        button.addTarget(self, action: "changeColorRed:", forControlEvents: .TouchUpInside)
    }
        
    for subview in view.subviews where subview.tag == 20 {
        let button = subview as! UIButton
        button.addTarget(self, action: "changeColorGreen:", forControlEvents: .TouchUpInside)
    }
}

這里的 subview 屬性可以用于遍歷主視圖的子視圖。每個(gè)按鈕都根據(jù) tag 值的不同添加了一個(gè)相應(yīng)的 target。接下來(lái),我們需要實(shí)現(xiàn) target 方法:

func changeColorRed(sender: AnyObject) {
    let button: UIButton = sender as! UIButton
    button.tintColor = UIColor.redColor()
}
    
func changeColorGreen(sender: AnyObject) {
    let button: UIButton = sender as! UIButton
    button.tintColor = UIColor.greenColor()
}

當(dāng)選中按鈕時(shí),按鈕的顏色會(huì)隨之改變。構(gòu)建并運(yùn)行項(xiàng)目,接下來(lái)我們就點(diǎn)擊按鈕來(lái)更改這些按鈕的顏色了。

你可以從 ioscreator 的 GitHub 下載 IOS9MultipleOutletsTutorial 的源碼。

本文由 SwiftGG 翻譯組翻譯,已經(jīng)獲得作者翻譯授權(quán),最新文章請(qǐng)?jiān)L問(wèn) http://swift.gg。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,303評(píng)論 4 61
  • Storyboard是最先在iOS 5引入的一項(xiàng)振奮人心的特性,大幅縮減構(gòu)建App用戶(hù)界面所需的時(shí)間。 要介紹St...
    余一波_Bobby閱讀 62,398評(píng)論 11 76
  • 歡迎回到 macOS 開(kāi)發(fā)教程初學(xué)者系列 3 部分中的第 2 部分! 在本系列的第 1 部分中,學(xué)習(xí)了如何安裝 X...
    張嘉夫閱讀 11,001評(píng)論 5 50
  • 今天我偶遇了你——蝸牛(取名:快快) 還記得我們第一次見(jiàn)面的地方是在陽(yáng)臺(tái)上。當(dāng)時(shí),你身穿斑點(diǎn)外套,長(zhǎng)著一對(duì)黑黑的短...
    初念吖_L閱讀 297評(píng)論 1 1
  • 我不喜歡剖析自己,一旦開(kāi)始,便一發(fā)不可收拾,某些不想觸碰的地方就會(huì)極有可能坍塌。 但我在這個(gè)陌生人的地盤(pán)我開(kāi)始了自...
    Jessie_Mom閱讀 307評(píng)論 2 1

友情鏈接更多精彩內(nèi)容