創(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)系作者
  • 序言:七十年代末虽抄,一起剝皮案震驚了整個(gè)濱河市走搁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌迈窟,老刑警劉巖私植,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異车酣,居然都是意外死亡曲稼,警方通過(guò)查閱死者的電腦和手機(jī)索绪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)贫悄,“玉大人瑞驱,你說(shuō)我怎么就攤上這事≌梗” “怎么了钱烟?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)嫡丙。 經(jīng)常有香客問(wèn)我拴袭,道長(zhǎng),這世上最難降的妖魔是什么曙博? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任拥刻,我火速辦了婚禮,結(jié)果婚禮上父泳,老公的妹妹穿的比我還像新娘般哼。我一直安慰自己,他們只是感情好惠窄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布蒸眠。 她就那樣靜靜地躺著,像睡著了一般杆融。 火紅的嫁衣襯著肌膚如雪楞卡。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天脾歇,我揣著相機(jī)與錄音蒋腮,去河邊找鬼。 笑死藕各,一個(gè)胖子當(dāng)著我的面吹牛池摧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播激况,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼作彤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了乌逐?” 一聲冷哼從身側(cè)響起竭讳,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎黔帕,沒(méi)想到半個(gè)月后代咸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡成黄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年呐芥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奋岁。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡思瘟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出闻伶,到底是詐尸還是另有隱情滨攻,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布蓝翰,位于F島的核電站光绕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏畜份。R本人自食惡果不足惜诞帐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望爆雹。 院中可真熱鬧停蕉,春花似錦、人聲如沸钙态。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)册倒。三九已至蚓挤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間驻子,已是汗流浹背屈尼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拴孤,地道東北人脾歧。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像演熟,于是被迫代替她去往敵國(guó)和親鞭执。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

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