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