作者: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。