一、 UIDatePicker 的介紹
UIDatePicker 是一個控制器類,封裝了 UIPickerView,但是他是UIControl的子類,專門用于接受日期、時間和持續時長的輸入。
二 、UIDatePicker 的使用
1、初始化
/**
初始化
let NwDatePicker = UIDatePicker.init()
NwDatePicker = UIDatePicker.init(frame: <#T##CGRect#>)
NwDatePicker = UIDatePicker.init(coder: <#T##NSCoder#>)
*/
let NwDatePicker = UIDatePicker.init()
2、設置大小和輪廓
大小
/**
設置大小
*/
NwDatePicker.frame = CGRect.init(x: 60, y: 70, width: 300, height: 160)
輪廓
/**
設置輪廓
*/
NwDatePicker.layer.borderWidth = 1
NwDatePicker.layer.borderColor = UIColor.gray.cgColor
3、 設置日期選擇器的樣式
/**
顯示的日期的形式
*/
NwDatePicker.datePickerMode = .time
其中 datePickerMode 有四種選擇,分別如下:
1、 time
AF1B5480-9231-4C33-B792-92BE683095DD.png
2、 countDownTimer
1D117D8F-8D67-469D-B75A-BD8556311DE9.png
3 、 date
37CF0F15-4C3A-4741-B4BE-3F3671CB5295.png
4 、dateAndTime
DC4D3BD7-1075-4F6F-B9A4-79D9E91F5655.png
4、日期本地化
/**
日期本地化
相關說明:1.默認值是NSLocale類的currentLocale屬性返回的值,或者是是時間選擇器的日歷所使用的本地化值。
2.本地化屬性封裝了關于語言和文化的層面,如日期的格式信息方式。
3.如果設備的‘設置’應用程序中地區選擇“中國”時,Locale.current.identifier 返回的是@“zh_CN”。
4.在滿足3的前提下,設置NwDatePicker.locale = Locale.init(identifier: "zh_CN");是多余的。 */
/**
獲取當前本地化
*/
print(Locale.current.identifier)
NwDatePicker.locale = Locale.init(identifier: "zh_CN")
5、 設置日歷的屬性
/**
設置日歷屬性
相關說明:
1.此屬性的默認值對應于用戶的當前日歷,是在‘設置’這個應用程序中去設置的。
2.訪問這個屬性相當于調用 NSCalendar類的currentCalendar方法后時返回的值。
3.設置這個屬性的值為nil,相當于使用它的默認值。
4.calendar屬性指明了用于計算時間的文化細節,它指明了一年的開始和長度,一年中如何劃分的方式。
*/
NwDatePicker.calendar = Calendar.current
6、 時區的設置
/**
時區的設置
相關說明:默認值是nil,意味著它利用的是NSTimeZone類的localTimeZone(本地時區)作為當前時區,或者是利用時間選擇器的日歷所使用的時區作為當前時區。
*/
NwDatePicker.timeZone = TimeZone.current
7、 日期屬性的設置
/**
日期屬性
關說明:1.該屬性的默認值是UIDatePicker對象創建時的日期。
2.該屬性會在UIDatePickerModeCountDownTimer日期模式下被忽略;在該模型中,日期選擇器開始于0:00。
3.設置該屬性可以讓時間選擇器旋轉到這個設置的日期與時間,但是不會產生動畫效果。
4.如果要產生動畫效果,需要使用 setDate:animated: 方法。
*/
NwDatePicker.date = Date.init(timeIntervalSinceNow: 100)
8、 設置一個時間區段
/**
日期屬性
關說明:1.該屬性的默認值是UIDatePicker對象創建時的日期。
2.該屬性會在UIDatePickerModeCountDownTimer日期模式下被忽略;在該模型中,日期選擇器開始于0:00。
3.設置該屬性可以讓時間選擇器旋轉到這個設置的日期與時間,但是不會產生動畫效果。
4.如果要產生動畫效果,需要使用 setDate:animated: 方法。
*/
NwDatePicker.date = Date.init(timeIntervalSinceNow: 100)
9 、倒計時
/**
倒計時屬性
相關說明:1.該屬性設置倒計時需要倒計的秒數。
2.如果時間選擇器的時間模式不是倒計時模式,則該屬性會被忽略。
3.默認值是0.0,最大值為23:59(86399秒)。
*/
NwDatePicker.countDownDuration = 86399
10 、 時間的間隔設置
/**
時間間隔屬性
相關說明:1.使用該屬性設置由分鐘車輪顯示的時間間隔。
2.間隔值必須均勻地分隔60,如果沒有這樣做,該屬性將使用默認值為1。
3.該屬性值的范圍是大于等于1,并小于等于30 */
NwDatePicker.minuteInterval = 2
11、 監控其值的變化
/**
監控其值的變化
*/
NwDatePicker.addTarget(self, action: #selector(chooseDate( _:)), for:UIControlEvents.valueChanged)
獲取選擇的時間
/**
獲取選擇的時間
*/
func chooseDate(_ datePicker:UIDatePicker) {
let chooseDate = datePicker.date
let dateFormater = DateFormatter.init()
dateFormater.dateFormat = "YYYY-MM-dd HH-mm-ss"
print(dateFormater.string(from: chooseDate))
}