2014年6月26日 星期四

UIDatePicker programmatically using Swift language

【說明】

此份筆記僅注重於日期的部分,UIDatePicker還有包含時間的部分。
UIDatePicker的建立可以使用Storyboard產生,讓物件與ViewController做連結即可,如下所示。


【片段程式碼】

myDatePicker.datePickerMode = .Date
DatePickerMode有四種列舉型別可以選擇:TimeDateDateAndTimeCountDownTimer
Time
Date
DateAndTime
CountDownTimer
@IBAction func valueChanged(sender: UIDatePicker) {
        

}
當使用Storyboard建立value改變時觸發的func後就會自動產生這段程式碼。

var currentDate: NSDate = myDatePicker.date
建立一個資料型態為NSDate的變數,存放DatePicker的時間。

var dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = .FullStyle
var showDateString: String = dateFormatter.stringFromDate(currentDate)
若我們欲將使用者選擇的日期顯示在UILabel上則可以用NSDateFormatter將時間轉換成String,首先建立一個名為dataFormatter的變數,其資料型態為NSDateFormatter,並設定dateStyle,dateStyle有五種可以選擇:NoStyleShortStyleMediumStyleLongStyleFullStyle,最後用String的變數將轉換後的字串儲存起來。
ShortStyle
MediumStyle
LongStyle
FullStyle

【完整的程式範例】

//
//  ViewController.swift
//  UIDatePicker
//
//  Created by Hsu,Yi-Sheng on 2014/6/26.
//  Copyright (c) 2014 yisheng. All rights reserved.
//

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet var myLabel: UILabel
    @IBOutlet var myDatePicker: UIDatePicker
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        myDatePicker.datePickerMode = .Date
    }

    @IBAction func valueChanged(sender: UIDatePicker) {
        
        var currentDate: NSDate = myDatePicker.date
        
        var dateFormatter = NSDateFormatter()
        dateFormatter.dateStyle = .FullStyle
        var showDateString: String = dateFormatter.stringFromDate(currentDate)
        
        myLabel.text = showDateString
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}


【執行結果】

沒有留言:

張貼留言