1.UIDatePicker 继承自UIControl,是一个事件驱动型控件,内部通过封装 UIPickerView实现,相当于日期时间选择操作的UIPickerView。共有四种显示模式,如下
typedef NS_ENUM(NSInteger, UIDatePickerMode) {
UIDatePickerModeTime, // <span style="font-family:Arial;">显示小时和分钟,上午下午</span>
UIDatePickerModeDate, // <span style="font-family:Arial;">显示日期,月,日,年。</span>
UIDatePickerModeDateAndTime, // <span style="font-family:Arial;">显示全部,包括星期,月日年,时间,上午下午</span>
UIDatePickerModeCountDownTimer, // <span style="font-family:Arial;">显示小时和分钟</span>
};
2.UIDatePicker的高时固定的,不可以修改,UIDatePicker 需要搭配 NSDate 类来使用,来配置UIDatePicker中一些参数,以下是范例
UIDatUIDatePicker *datePicker = [ [ UIDatePicker alloc] initWithFrame:CGRectMake(0.0,0.0,100,100)];
datePicker.datePickerMode = UIDatePickerModeTime;
datePicker.minuteInterval = 10; // 时间间隔,表示分钟是按照10的倍数显示。此处必须是60得约数,默认为1分钟
NSDate *maxDate = [datePicker date]; // 获取当前时间作为最大显示时间
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *minDate = [dateFormatter dateFromString:@"1991-07-07 11:11"]; // 显示最小日期时间
datePicker.minimumDate = minDate; // picker中最小时间
datePicker.maximumDate = maxDate; // 最大时间,也就是当前时间,一般用来选择生日或者别的,
//此处若不设置则显示的时过去的某个时间和将来的某个时间
<span><span> datePicker.date = minDate;</span></span> // 此处设置默认显示的时间
[self.view addSubview:datePicker]; // 添加到当前视图控制器
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];//设置为中文 默认为英文
datePicker.locale = locale; // 设置是显示当前语言
3.获取当前选中的日期信息,另外也可以在选中日期的时候触发事件,如下例,当选中的日期与之前默认日期不一样时,就会触发dateChanged方法
NSDate* <span style="font-family:Arial;">currD</span>ate = datePicker.date;
[datePicker addTarget:self action:@selector(dateChanged)
<span style="font-family:Arial;"> </span>forControlEvents:UIControlEventValueChanged]; <span style="font-family:Arial;">//事件类型</span>
4.UIDatePicker的事件类型,都是很直观的的单词,很容易理解。
typedef NS_OPTIONS(NSUInteger, UIControlEvents) {
UIControlEventTouchDown = 1 << 0, // on all touch downs
UIControlEventTouchDownRepeat = 1 << 1, // on multiple touchdowns (tap count > 1)
UIControlEventTouchDragInside = 1 << 2,
UIControlEventTouchDragOutside = 1 << 3,
UIControlEventTouchDragEnter = 1 << 4,
UIControlEventTouchDragExit = 1 << 5,
UIControlEventTouchUpInside = 1 << 6,
UIControlEventTouchUpOutside = 1 << 7,
UIControlEventTouchCancel = 1 << 8,
UIControlEventValueChanged = 1 << 12, // sliders, etc.
UIControlEventEditingDidBegin = 1 << 16, // UITextField
UIControlEventEditingChanged = 1 << 17,
UIControlEventEditingDidEnd = 1 << 18,
UIControlEventEditingDidEndOnExit = 1 << 19, // 'return key' ending editing
UIControlEventAllTouchEvents = 0x00000FFF, // for touch events
UIControlEventAllEditingEvents = 0x000F0000, // for UITextField
UIControlEventApplicationReserved = 0x0F000000, // range available for application use
UIControlEventSystemReserved = 0xF0000000, // range reserved for internal framework use
UIControlEventAllEvents = 0xFFFFFFFF
};