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];

}

转载于:https://www.cnblogs.com/jackwuyongxing/p/3516232.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值