UIDatePicker是时间选择视图控件,类似于老虎机。
1、通常初始化时,只设置其原点坐标,而不设置其大小(默认大小为frame = (0 176; 320 216))
2、主要用来进行时间的设置
@interface ViewController ()
//{
// // 方法1 设置成变量
// UIDatePicker *datePicker;
//}
// 方法2 设置成属性
@property (nonatomic, strong) UIDatePicker *datePicker;
@end
self.datePicker = [[UIDatePicker alloc] init];
self.datePicker.center = self.view.center;
NSLog(@"datePicker %@", self.datePicker);
[self.view addSubview:self.datePicker];
self.datePicker.backgroundColor = [UIColor orangeColor];
// 时间类型
self.datePicker.datePickerMode = UIDatePickerModeDateAndTime;
// 显示时间,默认当天
NSDate *defaultDate = [NSDate dateWithTimeIntervalSinceNow:(2 * 24 * 60 * 60)];
// 方法1
// self.datePicker.date = defaultDate;
// 方法2
[self.datePicker setDate:defaultDate animated:YES];
// 最小时间
NSDate *minimumDate = [NSDate dateWithTimeIntervalSinceNow:(-1 * 24 * 60 * 60)];
self.datePicker.minimumDate = minimumDate;
// 最大时间
NSDate *maximumDate = [NSDate dateWithTimeIntervalSinceNow:(6 * 24 * 60 * 60)];
self.datePicker.maximumDate = maximumDate;
// 结合类型UIDatePickerModeCountDownTimer使用,倒时间距
// self.datePicker.countDownDuration = 30.0;
// 时间选择秒数的间隔
self.datePicker.minuteInterval = 5.0;
// 获取当前时间
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0.0, (CGRectGetHeight(self.view.bounds) - 40.0), CGRectGetWidth(self.view.bounds), 40.0)];
[self.view addSubview:button];
button.backgroundColor = [UIColor redColor];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor yellowColor] forState:UIControlStateHighlighted];
[button setTitle:@"获取时间" forState:UIControlStateNormal];
button.titleLabel.numberOfLines = 2;
[button addTarget:self action:@selector(showTime:) forControlEvents:UIControlEventTouchUpInside];
// 显示时间
- (void)showTime:(UIButton *)button
{
// 要获得UIDatePicker的时间,需要将UIDatePicker设置成变量,或属性
NSDate *selectedDate = self.datePicker.date;
NSLog(@"selectedDate %@", selectedDate);
NSString *title = [NSString stringWithFormat:@"获取时间\n%@", selectedDate];
[button setTitle:title forState:UIControlStateNormal];
}