40-Swift之UIDatePicker(日期选择器)
2017-06-29 本文已影响1622人
NetWork小贱
一、 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.png2、 countDownTimer
1D117D8F-8D67-469D-B75A-BD8556311DE9.png3 、 date
37CF0F15-4C3A-4741-B4BE-3F3671CB5295.png4 、dateAndTime
DC4D3BD7-1075-4F6F-B9A4-79D9E91F5655.png4、日期本地化
/**
日期本地化
相关说明: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))
}