iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 14
0
Software Development

Swift 新手上路之30天復刻版型系列 第 14

Day 14 - Jetstar 分段控制 (Segmented Control)

  • 分享至 

  • xImage
  •  

在這篇要練習用分段控制來做版面的變換,觀察一下版面之後,只把變換的部分拉出來利用 xib 額外做成 view 呈現在 view controller 上。一樣先略過日期的實際選取,而直接做版面的切換。

首先先在左邊按下右鍵,選擇 New File > Cocoa Touch Class,取名後選擇 Subclass of UIViewController,並且勾選 Also create XIB file。接著再重複一次,這兩個 xib 內容就是負責 Return 以及 One-way 的畫面。
https://ithelp.ithome.com.tw/upload/images/20180102/20107699jA4BfLtAP6.png

這時左邊欄是這樣
https://ithelp.ithome.com.tw/upload/images/20180102/20107699mcYipMHO9M.png

切換到 Storyboard 拉進 Segmented Control 並修改顯示字樣
https://ithelp.ithome.com.tw/upload/images/20180102/20107699a3ev1eNt9s.png

再來已完成的起始地交換以及人數增減的部分不動,下面拉進一個 View 要交由分段控制來顯示。
https://ithelp.ithome.com.tw/upload/images/20180102/20107699Hos4RrAV6K.png

開啟 Asistant editor 將 Segmented Control 以 @IBAction 連結,View 則以 @IBOutlet 連結。回到程式碼部分,將分段控制會出現的兩個 View 都寫進來。

 @IBOutlet weak var viewContainer: UIView!
    
    var views: [UIView]!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        views = [UIView]()
        views.append(MainVC().view)
        views.append(SecondVC().view)
        
        for v in views {
            viewContainer.addSubview(v)
        }
        viewContainer.bringSubview(toFront: views[0])
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    //分段控制button
    @IBAction func switchSeg(_ sender: UISegmentedControl) {
        self.viewContainer.bringSubview(toFront: views[sender.selectedSegmentIndex])
    }

可以先簡單地設兩種背景顏色分別給兩個 xib,寫完這邊程式碼的部分就可以先做檢視,再接著做 xib 裡面的內容。

先選擇第一個 xib 做為 Return 畫面的顯示,拉進 label 以及按鈕來完成
https://ithelp.ithome.com.tw/upload/images/20180102/20107699JNOk4QPFbo.png

接著選擇第二個 xib 來完成 One-way 的畫面
https://ithelp.ithome.com.tw/upload/images/20180102/20107699YusXedIF4t.png

這樣就完成分頁控制的畫面了。
https://ithelp.ithome.com.tw/upload/images/20180102/20107699pzmhqYgkCx.pnghttps://ithelp.ithome.com.tw/upload/images/20180102/20107699J905vgBK8E.png


上一篇
Day 13 - Jetstar 人數增減(續)
下一篇
Day 15 - Agoda 版型檢視
系列文
Swift 新手上路之30天復刻版型30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言