UIDatePicker的使用
UIDatePicker的基本概念
UIDatePicker提供了一个快速选择日期和时间的控件,它是UIControl的子类,专门用于日期、时间的选择。其样式可以通过UIDatePicker的属性进行灵活设置,同时也可以获取到当前UIDatePicker的值,从而进行下一步的操作。
UIDatePicker的创建
UIDatePicker* datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(20, 100, 280, 100)];
UIDatePicker的属性
显示模式
UIDatePickerModeTime 时间
UIDatePickerModeDate 日期
UIDatePickerModeDateAndTime 日期和时间
UIDatePickerModeCountDownTimer 选择器时间
- UIDatePickerModeTime(时间)
datePicker.datePickerMode = UIDatePickerModeTime;
- UIDatePickerModeDate(日期)
datePicker.datePickerMode = UIDatePickerModeDate;
- UIDatePickerModeDateAndTime(日期和时间)
datePicker.datePickerMode = UIDatePickerModeDateAndTime;
- UIDatePickerModeCountDownTimer(选择器样式时间)
datePicker.datePickerMode = UIDatePickerModeCountDownTimer;
显示样式
datePicker.preferredDatePickerStyle = UIDatePickerStyleCompact;
- UIDatePickerStyleAutomatic(根据当前模式的最佳样式)
- UIDatePickerStyleWheels(使用选择器UIPickerView样式,编辑以内联方式进行)
- UIDatePickerStyleCompact(使用日期选择器的紧凑样式,编辑发生在覆盖中)
- UIDatePickerStyleInline(使用允许就地编辑的日期选择器样式)
其他
// 时间设置本地化
@property (nullable, nonatomic, strong) NSLocale *locale; // 默认值为[NSLocale currentLocale]。设置nil返回默认值
// 设置其他日历模式
@property (null_resettable, nonatomic, copy) NSCalendar *calendar; // 默认值为[NCCalendar currentCalendar]。设置nil返回默认值
// 设置时区
@property (nullable, nonatomic, strong) NSTimeZone *timeZone; // 默认值为零。使用当前时区或日历中的时区
// 设置默认时间
@property (nonatomic, strong) NSDate *date; // 默认值是选择器创建时的当前日期。在倒计时计时器模式下忽略。对于该模式,拾取器从0:00开始
// 设置最小日期范围
@property (nullable, nonatomic, strong) NSDate *minimumDate; // 指定最小/最大日期范围。默认值为零。当最小值>最大值时,将忽略这些值。在倒计时计时器模式下忽略//指定最小/最大日期范围。默认值为零。当最小值>最大值时,将忽略这些值。在倒计时计时器模式下忽略
// 设置最大日期范围
@property (nullable, nonatomic, strong) NSDate *maximumDate; // 默认为nil
// 倒计时持续时间
@property (nonatomic) NSTimeInterval countDownDuration; // 对于UIDatePickerModeCountDownTimer,否则忽略。默认值为0.0。限制为23:59(86399秒)。设置的值是div60(减少剩余秒数)。
// 每一格显示的长度,步长
@property (nonatomic) NSInteger minuteInterval; // 显示带间隔的分钟轮。间隔必须均匀地划分为60。默认值为1。最小值为1,最大值为30
// 设置时间并附带滑动效果
- (void)setDate:(NSDate *)date animated:(BOOL)animated; // 如果设置动画为“是”,则设置时间轮的动画以显示新日期
/// 请求日期选择器的样式。如果样式已更改,则可能需要调整日期选择器的大小,并将生成一个布局传递以正确显示。
@property (nonatomic, readwrite, assign) UIDatePickerStyle preferredDatePickerStyle API_AVAILABLE(ios(13.4)) API_UNAVAILABLE(tvos, watchos);
/// 日期选择器用于其布局的样式。此属性始终返回具体样式(从不自动)。
@property (nonatomic, readonly, assign) UIDatePickerStyle datePickerStyle API_AVAILABLE(ios(13.4)) API_UNAVAILABLE(tvos, watchos);