UIDatePicker - 日期选择器

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值