Segmented Control 教程

作者:Arthur Knopper,原文鏈接,原文日期:2016-10-18
譯者:Crystal Sun;校對(duì):星夜暮晨;定稿:CMB

Segmented Control 用于展示一些用戶可以選擇的選項(xiàng)。每個(gè) Segment 看起來像是一個(gè)單選按鈕 (radio button),用戶即便選中了某個(gè)選項(xiàng),這個(gè) Segment 仍保持“選中”狀態(tài)。在本節(jié)教程里,我們會(huì)在 UISegmentedController 當(dāng)中創(chuàng)建兩個(gè) Segment,每個(gè) Segment 會(huì)讓 Label 顯示不同的文本內(nèi)容。本節(jié)教程將使用 Xcode 8 和 iOS 10 來進(jìn)行構(gòu)建。

打開 Xcode,創(chuàng)建一個(gè) Single View Application。

點(diǎn)擊 Next,product name 一欄填寫 IOS10SegmentedControlTutorial,填寫好 Organization Name 和 Organization Identifier,Language 選擇 Swift,Devices 選擇 iPhone。

前往 Storyboard 當(dāng)中,拖一個(gè) Segmented Control 放到主界面。隨后再拖一個(gè) Label,使其位于 Segmented Control 的下方并將其文本內(nèi)容改為 First Segment Selected。Storyboard 看起來如下圖所示:

選中 Label,按住 Ctrl 并拖向 Segmented Control,在彈出窗中選擇 Vertical Spacing 選項(xiàng)。

選中 Segmented Control,點(diǎn)擊 Storyboard 右下角的 Auto Layout 中的 Pin 按鈕,在彈出窗中輸入下圖中的值,點(diǎn)擊 Add 1 Constraint。

按住 Shift 鍵選中 Label 和 Segmented Control,點(diǎn)擊 Storyboard 右下角的 Auto Layout 中的 Align 按鈕,在彈出窗中輸入下圖中的值,點(diǎn)擊 Add 2 Constraint。

點(diǎn)擊 Assistant Editor,確保 ViewController.swift 文件可見。按住 Ctrl,把 Segmented Control 拖到 ViewController.swift 文件里,創(chuàng)建一個(gè) Outlet 如下圖所示:

按住 Ctrl,把 Label 拖到 ViewController.swift 文件里,創(chuàng)建一個(gè) Outlet 如下圖所示:

按住 Ctrl,把 Segmented Control 拖到 ViewController.swift 文件里,創(chuàng)建一個(gè) Action 如下圖所示:

當(dāng)用戶改變了 Segment 的索引 (index) 值的時(shí)候,都會(huì)調(diào)用這個(gè) indexChanged 方法,下面來實(shí)現(xiàn)這個(gè)方法:

@IBAction func indexChanged(_ sender: AnyObject) {
    switch segmentedControl.selectedSegmentIndex
    {
    case 0:
        textLabel.text = "First Segment Selected";
    case 1:
        textLabel.text = "Second Segment Selected";
    default:
        break
    }
}

當(dāng) selectedSegmentIndex 值發(fā)生變化后,Label 的文本也會(huì)更新。第一個(gè) Segment 的索引值是 0,第二個(gè) Segment 的索引值是 1。編譯并運(yùn)行工程,您會(huì)發(fā)現(xiàn)文本內(nèi)容會(huì)隨著 Segment 的變化而發(fā)生變化。

在 ioscreator 的 github 上可以下載到本節(jié)課程 IOS10SegmentedControlTutorial 的源代碼。

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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