segmented control 教程

原文鏈接
作者:Arthur Knopper
原文日期:2016-10-18
譯者:Crystal Sun

segmented control 展示了一些選項,用戶可以每個選項。每個 segment 像是一個 radio 單選按鈕,用戶點完 segment 后 segment 仍保持“選中”狀態。在本節教程里,我們會在 UISegmentedController 創建兩個 segment,每個 segment 展示 label 文本內容不同。本節教程將使用 Xcode 8 和 iOS 10 來進行構建。

打開 Xcode,創建一個 Single View Application。

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

前往 Storyboard 當中,拖一個 Segmented Control 放到主界面。隨后再拖一個 Label,使其位于 Segmented Control 的下方并將其文本改為 First Segment Selected。Storyboard 看起來如下圖:

按住 Ctrl,選中 Label 拖向 Segmented Control,在彈出窗中選擇 Vertical Spacing 選項。

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

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

點擊 Assistant Editor,確保 ViewController.swift 文件可見。按住 Ctrl,把 Segmented Control 拖到 ViewController.swift 文件里,創建一個 Outlet 如下圖所示:

按住 Ctrl,把 Label 拖到 ViewController.swift 文件里,創建一個 Outlet 如下圖所示:

按住 Ctrl,把 Segmented Control 拖到 ViewController.swift 文件里,創建一個 Action 如下圖所示:

用戶點擊 Segmented Control 會改變 segment index 值,每次值發生變化,都會調用 indexChanged 方法,下面來實現這個方法:

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

selectedSegmentIndex 值發生變化后,label 的文本也會更新。第一個 segment 的 index 值是 0,第二個 segment 的 index 值是 1。運行工程,實現了這個效果。

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

本文由 SwiftGG 翻譯組翻譯,已經獲得作者翻譯授權。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 作者:Arthur Knopper,原文鏈接,原文日期:2016-10-18譯者:Crystal Sun;校對:星...
    梁杰_numbbbbb閱讀 1,250評論 1 0
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,252評論 4 61
  • 斯蒂芬是否 asdfsafdfsgfsd
    ma63d閱讀 47評論 0 0
  • 黑云彌漫樓隱現,惡氣張牙舞爪翻。 我給玉帝發微信,他說地獄在擴建。
    老槐樹閱讀 273評論 2 8
  • 最后才明白,所有的高尚的情操都是建立在生存的基礎之上的。 ——題記 ...
    木鬼木安閱讀 464評論 0 1