UIDatePicker - 日期选择器

来源:互联网 发布:怪物猎人ol数据库 编辑:程序博客网 时间:2024/05/16 20:23

UIDatePicker - 日期选择器

继承关系

  • NSObject ->UIResponder -> UIView ->UIControl -> UIDatePicker

概述

UIDatePicker使用多个可转动的轮子来让用户选择日期和时间。可应用于定时器、闹钟、和倒计时(但并没有实现此功能,需要自己建立个NSTimer对象来倒计时)。
当用户转动完轮子改变的时候,UIDatePicker会发送UIControlEventValueChanged消息,通过侦听这个消息,做出相应的处理。

UIDatePicker不是继承自UIPickerView,但管理一个自定义picker-view(选择器视图)对象作为子视图。
这里写图片描述

显示模式

显示模式分为四种,默认为UIDatePickerMode.DateAndTime,下面列个模式出了显示的类型,但具体的显示顺序及格式和local设置有关。

enum UIDatePickerMode : Int {  //小时:分钟:上午/下午(AM/PM);如:[ 6 | 53 | PM ]    case Time    //年、月、日;如:[ November | 15 | 2007 ]       case Date    //周、月、日、小时、分钟、可选AM/PM;如:[ Wed Nov 15 | 6 | 53 | PM ]    case DateAndTime    //小时、分钟;如:[ 1 | 53 ]    case CountDownTimer}

设置内容

可以通过属性date设置当前日期,minimumDatemaximumDate设置日期范围。如果选择器的显示模式为倒计时,那么可通过设置countDownDuration属性的值来确定倒计时的时间。

     // 设置日期范围(超过日期范围,会回滚到最近的有效日期)        let dateFormatter = NSDateFormatter()        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"        let maxDate = dateFormatter.dateFromString("2016-08-01 08:00:00")        let minDate = dateFormatter.dateFromString("2015-04-01 08:00:00")        // 最大日期        picker.maximumDate = maxDate        //最小日期        picker.minimumDate = minDate        // 设置默认时间        //picker.date = NSDate()

示例

主要用法通过下面代码说明:

class UIDatePickerVC: UIViewController {    var  picker: UIDatePicker!    override func viewDidLoad() {        super.viewDidLoad()        // 设置日前选择器位置,大小已定,不能更改。        picker = UIDatePicker(frame: CGRect(x: 10,y: 50,width: 0,height: 0))        // 设置选择器的显示模式        picker.datePickerMode = UIDatePickerMode.CountDownTimer        // 设置分钟间隔       picker.minuteInterval = 1        //倒计时开始秒数(设置为2分钟),如果显示模式不是.CountDownTimer此设置无效。        picker.countDownDuration = 120        // 设置日期范围(超过日期范围,会回滚到最近的有效日期)        let dateFormatter = NSDateFormatter()        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"        let maxDate = dateFormatter.dateFromString("2016-08-01 08:00:00")        let minDate = dateFormatter.dateFromString("2015-04-01 08:00:00")        // 最大日期        picker.maximumDate = maxDate        //最小日前        picker.minimumDate = minDate        // 设置默认时间        //picker.date = NSDate()        //设置语言为中文        picker.locale = NSLocale(localeIdentifier: "zh_CN")        //设置时区        picker.timeZone = NSTimeZone.systemTimeZone()        //设置日历,显示农历//        picker.calendar =NSCalendar(calendarIdentifier: NSCalendarIdentifierChinese)        self.view.addSubview(picker)        picker.addTarget(self, action: #selector(valueChangeHandler(_:)), forControlEvents: UIControlEvents.ValueChanged)    }    func valueChangeHandler(sender: UIDatePicker) {        print("value: \(sender.date)")    }}
0 0