自定义简单的UIDatePicker

本文介绍如何在iOS应用中创建并使用自定义的UIDatePicker,展示了一个简单的小demo,通过代码实现日期选择功能。设置为只显示日期,并通过监听滚动事件更新显示的日期格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用到时间和日期显示 、ios系统自带的UIDatePicker很好用、写了个小demo、和大家分享、直接上代码,复制粘贴就OK


{

    UIDatePicker * datePicker;

}


/**

 *  创建UIDatePicker

 */

- (void)loadPickerView

{

    NSDate * nowdate = [NSDate date];

    

   // 可以不用设置宽高,因为它的宽高是固定的

 datePicker = [[UIDatePicker alloc] initWithFrame: CGRectMake(0, self.view.frame.size.height-216, self.view.frame.size.width, 216)];

    

   // 设置区域为中国简体中文

    datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];

    

/*

    UIDatePickerModeTime,

    UIDatePickerModeDate, 

    UIDatePickerModeDateAndTime, 

    UIDatePickerModeCountDownTimer,

*/

    // 设置picker的显示模式:只显示日期

    datePicker.datePickerMode = UIDatePickerModeDate;


   //需要监听值的改变 UIDatePicker继承与UIControl,可以使用UIControl的方法- (void)addTarget:(id)target action:(SEL)action                              //forControlEvents:(UIControlEvents)controlEvents获取选择的日期时间。


    [datePicker addTarget:self action:@selector(dateChanged:)forControlEvents:UIControlEventValueChanged];

    [self.view addSubview:datePicker];

    

   //你可以通过设置mininumDate maxinumDate 属性,来指定使用的日期范围。如果用户试图滚动到超出这一范围的日期,表盘会回滚到最近的有效日期。两个方法都需要NSDate对象作参数:

    //设置当前日期为最近有效期

    NSDate * maxDate = nowdate;

    

    datePicker.maximumDate = maxDate;

    

   //你还可以用 setDate方法。如果选择了使用动画,则表盘会滚动到你指定的日期:

    [datePicker setDate:maxDate animated:YES];

}

/**

 *  监听滚动方法

 *

 *  @param sender 对象

 */

- (void)dateChanged:(id)sender

{

    UIDatePicker *control = (UIDatePicker *)sender;

    NSDate *select = control.date;//获取当前控制器

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    [dateFormatter setDateFormat:@"yyyy-MM-dd"];//设置显示格式

    NSString *dateTime =  [dateFormatter stringFromDate:select];

    _showlab.text = dateTime;//需要显示的地方随意

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值