iOS - UIDatePicker

前言

    NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIDatePicker : UIControl <NSCoding>
    @available(iOS 2.0, *)                         public class UIDatePicker : UIControl, NSCoding
  • UIDatePicker 是 UIKit 控件中提供日期和时间选择的控件。

1、DatePicker 的创建

  • Objective-C

        // 不设置 frame 时为系统默认大小
        UIDatePicker *datePicker = [[UIDatePicker alloc] init];
    
        // 将 datePicker 添加到屏幕上
        [self.view addSubview:datePicker];
  • Swift

        // 不设置 frame 时为系统默认大小
        let datePicker:UIDatePicker = UIDatePicker()
    
        // 将 datePicker 添加到屏幕上
        self.view.addSubview(datePicker)

2、DatePicker 的设置

  • Objective-C

        // 设置 frame
        /*
            不设置 frame 时为系统默认大小
        */
        datePicker.frame = CGRectMake(50, 100, self.view.bounds.size.width - 100, 300);
    
        // 设置位置
        datePicker.center = self.view.center;
    
        // 设置显示模式
        /*
            UIDatePickerModeTime,            // 仅显示时间,不显示日期
            UIDatePickerModeDate,            // 仅显示日期,不显示时间
            UIDatePickerModeDateAndTime,     // 同时显示日期和时间,默认
            UIDatePickerModeCountDownTimer,  // 显示为倒计时状态
        */
        datePicker.datePickerMode = UIDatePickerModeDateAndTime;
    
        // 设置本地化信息
        /*
            default is [NSLocale currentLocale]. setting nil returns to default
        */
        datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
    
        // 设置时区
        /*
            default is nil. use current time zone or time zone from calendar
        */
        datePicker.timeZone = [NSTimeZone systemTimeZone];
    
        // 设置日历
        /*
            default is [NSCalendar currentCalendar]. setting nil returns to default
        */
        datePicker.calendar = [NSCalendar currentCalendar];
    
        // 设置时间
        /*
            default is current date when picker created.
        */
        datePicker.date = [NSDate date];
        [datePicker setDate:[NSDate dateWithTimeIntervalSinceNow:60*60*26] animated:YES];
    
        // 设置最小的时间
        /*
            default is nil
        */
        datePicker.minimumDate = [NSDate dateWithTimeIntervalSince1970:0];
    
        // 设置最大时间
        /*
            default is nil
        */
        datePicker.maximumDate = [NSDate dateWithTimeIntervalSinceNow:60*60*24*7];
    
        // 设置可以调整的最小时间间隔(分钟)
        /*
            interval must be evenly divided into 60. default is 1. min is 1, max is 30
        */
        datePicker.minuteInterval = 2;
    
        // 设置倒计时时间值(秒)
        /*
            default is 0.0. limit is 23:59 (86,399 seconds)。必须为 60 的整数倍,比如设置为 100,值自动变为 60
        */
        datePicker.countDownDuration = 60*60;
    
        // 添加点击触发事件
        [datePicker addTarget:self action:@selector(datePickerChanged:) forControlEvents:UIControlEventValueChanged];
  • Swift

        // 设置 frame
        /*
            不设置 frame 时为系统默认大小
        */
        datePicker.frame = CGRectMake(50, 100, self.view.bounds.size.width - 100, 300)
    
        // 设置位置
        datePicker.center = self.view.center
    
        // 设置显示模式
        /*
            case Time             // 仅显示时间,不显示日期
            case Date             // 仅显示日期,不显示时间
            case DateAndTime      // 同时显示日期和时间,默认
            case CountDownTimer   // 显示为倒计时状态
        */
        datePicker.datePickerMode = .DateAndTime
    
        // 设置本地化信息
        /*
            default is [NSLocale currentLocale]. setting nil returns to default
        */
        datePicker.locale = NSLocale(localeIdentifier: "en_US")
    
        // 设置时区
        /*
            default is nil. use current time zone or time zone from calendar
        */
        datePicker.timeZone = NSTimeZone.systemTimeZone()
    
        // 设置日历
        /*
            default is [NSCalendar currentCalendar]. setting nil returns to default
        */
        datePicker.calendar = NSCalendar.currentCalendar()
    
        // 设置时间
        /*
            default is current date when picker created
        */
        datePicker.date = NSDate()
        datePicker.setDate(NSDate(timeIntervalSinceNow: 60*60*26), animated: true)
    
        // 设置最小的时间
        /*
            default is nil
        */
        datePicker.minimumDate = NSDate(timeIntervalSince1970: 0)
    
        // 设置最大时间
        /*
            default is nil
        */
        datePicker.maximumDate = NSDate(timeIntervalSinceNow: 60*60*24*7)
    
        // 设置可以调整的最小时间间隔(分钟)
        /*
            interval must be evenly divided into 60. default is 1. min is 1, max is 30
        */
        datePicker.minuteInterval = 2
    
        // 设置倒计时时间值(秒)
        /*
            default is 0.0. limit is 23:59 (86,399 seconds)。必须为 60 的整数倍,比如设置为 100,值自动变为 60
        */
        datePicker.countDownDuration = 60*60
    
        // 添加点击触发事件
        datePicker.addTarget(self, action: #selector(UiDatePicker.datePickerChanged(_:)), forControlEvents: .ValueChanged)
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/312240

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。