前言
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)