UIDatePicker是提供多个滚轮选取时间的UI
实际应用中确实很少见到使用这种UI 除了苹果自己的Clock App
但是任然简要的介绍一下吧
实际效果如图
同样我们依然会去查看头文件定义
typedef NS_ENUM(NSInteger, UIDatePickerMode) {
UIDatePickerModeTime, // Displays hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. 6 | 53 | PM)
UIDatePickerModeDate, // Displays month, day, and year depending on the locale setting (e.g. November | 15 | 2007)
UIDatePickerModeDateAndTime, // Displays date, hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. Wed Nov 15 | 6 | 53 | PM)
UIDatePickerModeCountDownTimer, // Displays hour and minute (e.g. 1 | 53)
};
NS_CLASS_AVAILABLE_IOS(2_0) @interface UIDatePicker : UIControl <NSCoding>
@property (nonatomic) UIDatePickerMode datePickerMode; // default is UIDatePickerModeDateAndTime
@property (nonatomic, retain) NSLocale *locale; // default is [NSLocale currentLocale]. setting nil returns to default
@property (nonatomic, copy) NSCalendar *calendar; // default is [NSCalendar currentCalendar]. setting nil returns to default
@property (nonatomic, retain) NSTimeZone *timeZone; // default is nil. use current time zone or time zone from calendar
@property (nonatomic, retain) NSDate *date; // default is current date when picker created. Ignored in countdown timer mode. for that mode, picker starts at 0:00
@property (nonatomic, retain) NSDate *minimumDate; // specify min/max date range. default is nil. When min > max, the values are ignored. Ignored in countdown timer mode
@property (nonatomic, retain) NSDate *maximumDate; // default is nil
@property (nonatomic) NSTimeInterval countDownDuration; // for UIDatePickerModeCountDownTimer, ignored otherwise. default is 0.0. limit is 23:59 (86,399 seconds). value being set is div 60 (drops remaining seconds).
@property (nonatomic) NSInteger minuteInterval; // display minutes wheel with interval. interval must be evenly divided into 60. default is 1. min is 1, max is 30
- (void)setDate:(NSDate *)date animated:(BOOL)animated; // if animated is YES, animate the wheels of time to display the new date
@end
首先UPIDatePickerView有四种样式可选
1.UIDatePickerModeTime 可以设置时 分 上下午
2.UIDatePickerModeDate 可以设置年 月 日
4.UIDatePickerModeCountDownTimer 可以设置时分
此UIT提供locale calendar timezone 三个属性分别代表 地区 日历 时间区
并且可以以属性设置日期上下限
maximumDate
minmumDate
可以表示可以选择的日期上下限 实际上在选择的时候是滚轮是可以翻过指定日期 但是最后回回滚回初始默认值
在需要设置UIPickerView的时候建议使用 setDate 方法 因为可以有动画效果
UIPicker使用起来也是相当的简单
1.初始化
UIDatePicker *datePicker = [[UIDatePicker alloc] init];
datePicker.center = self.view.center;
[self.view addSubView:datePicker];
需要在以上方法后追加
datePicker.frame = CGRectMake(0, 0, 300, 200);
来设置大小
如果要转轮选定确定值的时候 执行某一个方法
可以调用其直接父类的
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
使用方法同UIButton 只不过这里的触发Event要变成 UIControlEventValueChanged
[self.datePicker addTarget:self action:@selector(updateDatePickerLabel) forControlEvents:UIControlEventValueChanged];
这里附上如何值改变 后 反应到 label上
- (void)updateDatePickerLabel {
self.dateLabel.text = [self.dateFormatter stringFromDate:self.datePicker.date];
}
that's all
thx
Everything you see on Screen is UIView.