UIDatePicker 日期时间选取器
UIDatePicker 日期时间选取器
UIDatePicker是一个控制器类,封装了UIPickerView,但是也是UIControl的子类,专门用来接受日期,时间和持续时长的输入。日期选取器的各列会按照指定的风格进行配置,这样就可以让开发者不必担心如何配置时间选取器这样的底层操作。程序猿也可以对其进行定制,使其使用任意范围的时间。
UIDatePicker依赖于NSDate类,这个类是cocoa基础的一员,也就是只有在Mac OS基础编程里面具备的类,IOS里并不支持initWithString方法,但是可以用NSDateFormatter对其进行初始化。
使用任意时间初始化一个NSDate的方法是:
NSString *dateString =@”2000 01-01 00:00:00”;
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@”yyyy-MM-DD HH:mm:ss”];
NSDate *date=[dateFormatter dateFromString:dateString];
于是我们就可以得到一个初始化时间选取器的最小和最大的时间范围。
1.手动创建时间选取器。
我们也可以使用nib文件创建,并使用连线的方法。但是使用手动创建更具神奇色彩。
在头文件中声明了UIDatePicker *datePicker;在m文件的didViewLoad方法中添加:
datePicker=[[NSDatePicker alloc]initWithFrame:CGReckMake(0.0,0.0,0.0,0.0)];
并将其显示出来。[self.view addSubView:datePicker];
2.时间选取器的模式
时间选取器有四个模式:
UIDatePickerModeTime 只显示时间H和M,AM or PM
UIDatePickerModeDateAndTime 显示 date hour minute AM/PM
UIDatePickerModeDate 只显示日期 M D Y
UIDatePIckerModeCountDownTimer 只显示 H M
3.设置时间间隔
datePicker.minuteInterval=5;
将分钟的时间间隔调整为5,所设置的时间间隔要被60整除。否则设置将被忽略
4.日期范围的设置
假设已经存在了minDate和maxDate则可以使用属性minimumDate和maximumDate进行设置日期范围。如果用户滚动超出这一范围,则选取器自动回滚到最近有效日期,或者月份等时间变成灰色。
5.日期的读取
NSDate *date=[datePicker date];
由于日期选取器是UIControl的子类,你还可以在UIControl类的通知结构中挂接一个委托。
[datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged];
只要用户选择了一个日期,一下动作就会被调用:
- (void)dateChanged:(id)sender {
NSDate *select = [datePickerdate];
NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateAndTime = [dateFormatter stringFromDate:select];
UIAlertView *alert = [[UIAlertViewalloc] initWithTitle:@"时间提示"
message:dateAndTime
delegate:self
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alert show];
}