iOS中的UIDatePicker 日期选择器

#import "RootViewController.h"

@interface RootViewController ()
@property (nonatomic, retain) UITextField *textField;
@end

@implementation RootViewController
- (void)viewDidLoad {
    [super viewDidLoad];

    //使用 DatePicker自定义键盘
    [self customTextFieldForDatePicker];
}

#pragma mark - UIDatePicker 日期选择器

//通常用于自定义键盘
- (void)customTextFieldForDatePicker {

    /** 创建一个 UITextField*/
    self.textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 100, 300, 40)];
    self.textField.tag = 100;
    self.textField.borderStyle = UITextBorderStyleRoundedRect;
    [self.view addSubview:self.textField];
    [self.textField release];

    /** 创建一个 Button*/
    UIButton *btn  = [UIButton buttonWithType:UIButtonTypeSystem];
    btn.frame = CGRectMake(120, 150, 100, 30);
    [btn setTitle:@"按钮" forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(handleAction:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview: btn];

#pragma mark - ①初始化方法(高是固定的)

    UIDatePicker *picker = [[UIDatePicker alloc] init];
    picker.tag = 200;

#pragma mark - ②设置显示模型
        /*UIDatePickerModeTime           只显示时间
          UIDatePickerModeDate           只显示日期
          UIDatePickerModeDateAndTime    日期和时间
          UIDatePickerModeCountDownTimer 小时和分钟*/
    picker.datePickerMode = UIDatePickerModeDate;

#pragma mark - ③设置区域语言(设置12/24小时制是根据手机本身时间显示)

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

#pragma mark - ④设置默认日历( 默认为当天)

    picker.calendar = [NSCalendar currentCalendar];
    //picker.calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierChinese];

#pragma mark - ⑤设置显示的日期

    picker.date = [NSDate date];
    [picker setDate:[NSDate date] animated:YES];

#pragma mark - ⑥设置时区(默认为0时区)

    //picker.timeZone = [NSTimeZone defaultTimeZone];
    picker.timeZone = [NSTimeZone timeZoneWithName:@"GMT+8"];
    NSLog(@"%@", picker.date);

#pragma mark - ⑦最小时间

    NSDateFormatter *fMinDate = [[NSDateFormatter alloc] init];
    [fMinDate setDateFormat:@"yyyy-MM-dd HH:mm"];
    NSDate *minDate = [fMinDate dateFromString:@"2015-09-09 08:20"];
    [fMinDate release];
    picker.minimumDate = minDate;

#pragma mark - ⑧最大时间

    picker.maximumDate = [NSDate date];

#pragma mark - ⑨倒计时时长(模型设置为UIDatePickerModeCountDownTimer)

    picker.countDownDuration = 2;

#pragma mark - ⑩设置分钟间隔(默认为1,设置的间隔要能被60整除)

    picker.minuteInterval = 1;

#pragma mark - addTarget:action:..

    [picker addTarget:self action:@selector(changeValue:) forControlEvents:UIControlEventValueChanged];

    //自定义键盘
    self.textField.inputView = picker;
    [picker release];

}

#pragma mark - UIDatePicker的 Target方法

- (void)changeValue:(UIDatePicker *)picker {
    //获取当前UIPickerDate所在的时间

    NSDate *date = [picker date];
    UITextField *textField = (UITextField *)[self.view viewWithTag:100];
    /*//创建日期转换工具
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    //设置时区
    formatter.timeZone = [NSTimeZone timeZoneWithName:@"GMT+8"];

    //设定日期转换格式
    formatter.dateFormat = @"yyyy年MM年dd日 hh:mm:ss";
    textField.text = [formatter stringFromDate:date];*/

    textField.text = [NSString stringWithFormat:@"%@", date];
}

#pragma mark - 方法
- (void)handleAction:(UIButton *)sender {

    //获得 UIDatePicker
    UIDatePicker *picker = (UIDatePicker *)self.textField.inputView;

    //设置日期  - (void)setDate:(NSDate *)date animated:(BOOL)animated;
    //[picker setDate:[NSDate date] animated:NO];
    picker.date = [NSDate date];
    //刷新数据
    [self changeValue:picker];

}

//编辑结束,回收键盘
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    [self.view endEditing:YES];
}

 /*NSCalendar设置日历
  + (id)currentCalendar;
  取得当前用户的逻辑日历(logical calendar)

  + (id)autoupdatingCurrentCalendar;
  取得当前用户的逻辑日历(logical calendar), ......

  - (id)initWithCalendarIdentifier:(NSString *)identifier;
  初始化为各种日历。identifier的范围可以是:
    NSCalendarIdentifierGregorian 阳历
    NSCalendarIdentifierBuddhist 佛历
    NSCalendarIdentifierChinese 中国日历
    NSCalendarIdentifierHebrew 希伯来日历
    NSCalendarIdentifierIslamic 伊斯兰日历
    NSCalendarIdentifierIslamicCivil 伊斯兰民事日历
    NSCalendarIdentifierJapanese 日本日历
  */

@end
时间: 2024-10-12 20:48:20

iOS中的UIDatePicker 日期选择器的相关文章

Android中的时间日期选择器

1.layout <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <

ios(学习)UIPickerView&amp;&amp;UIDatePicker&amp;&amp;toolBar

UIPickerView 轮转界面提供多值选项,和tableView挺类似 1.首先初始化,并设置大小,这里的大小设置是否有作用,再试. _picker = [[UIPickerView alloc]initWithFrame:CGRectMake(0, 100, 375, 300)]; 2.实现两个代理方法UIPickerViewDelegate,UIPickerViewDataSource _picker.delegate = self; _picker.dataSource = self;

UIDatePicker 日期/时间选取器(滚轮)—IOS开发

UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期.时间和持续时长的输入.日期选取器的各列会按照指定的风格进行自动配置,这样就让开发者不必关心如何配置表盘这样的底层操作.你也可以对其进行定制,令其使用任何范围的日期. UIDatePicker 依赖于 NSDate 类,这个类是cocoa 基础的一员,以前用于桌面系统.本文中仅需用到 initWithString 来创建NSDate 所以NSDate 留待专题讲解,你只需

ios入门笔记(使用日期选择器)

1.创建项目 创建初始场景,和日期选择场景(可以将其背景色设置为Scroll View Texted Background Color),选择一个日期选择器至该视图 2.创建切换 按住CONTROL从初始视图拉向日期设置视图,(注意与前一章的区别,这里因为是两个控制器相连,所以要手工触发切换因此将该切换命名以便代码实现) 3.实现逻辑 1.在实现中除了让两个控制器知道彼此的方法属性外,还要提供一个属性(让日期选择器能够访问初始控制器,他将通过该属性访问初始控制器,因为在IPAD中要禁止用户同时显

iOS.UIKit.10.UIDatePicker

一.案例介绍:点击屏幕中的UIButton,将在UIDatePicker选择的日期显示在UILabel中,如图01,02 图01图02 二.案例步骤: 1.选择Simple View Aplication,取名cq.36.日期选择器,如图03 图03 2.Main.storyboard,如图04 3.CQ36ViewController.h #import <UIKit/UIKit.h> @interface CQ36ViewController : UIViewController @pro

UIDatePicker日期/时间选取器的用法 与+NSDate和NSString的相互转换

 UIDatePicker日期/时间选取器 UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期.时间和持续时长的输入.日期选取器的各列会按照指定的风格进行自动配置,这样就让开发者不必关心如何配置表盘这样的底层操作.你也可以对其进行定制,令其使用任何范围的日期. UIDatePicker 依赖于 NSDate 类,这个类是cocoa 基础的一员,以前用于桌面系统.本文中仅需用到 initWithString 来创建NSDa

UIDatepicker 日期时间选取器(滚动)

UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期.时间和持续时长的输入.日期选取器的各列会按照指定的风格进行自动配置,这样就让开发者不必关心如何配置表盘这样的底层操作.你也可以对其进行定制,令其使用任何范围的日期. UIDatePicker 依赖于 NSDate 类,这个类是cocoa 基础的一员,以前用于桌面系统.本文中仅需用到 initWithString 来创建NSDate 所以NSDate 留待专题讲解,你只需

iOS中的ScrollView

概览 UIScrollView类为显示大于应用程序窗口的内容提供支持.它使得用户可以使用滑动手势来滚动,并可以使用扩张/收缩手势来放大缩小部分内容. UIScrollView是包括UITableView和UITextView在内的多个UIKit类的父类. UIScrollView对象(或者简单地称为滚动视图)的中心思想是一个在它的内容视图中可调整的原点的视图.它裁剪它的内容至它本身的框架,该框架一般(但非必须)与应用程序主窗口的框架相符.滚动视图会跟踪手指的移动并据此调整原点.“通过”滚动视图显

ios中UIControl详解

上篇讲到了UITouch和UIEvent事件,简单回顾一下,UIEvent是一系列UITouch的集合,在IOS中负责响应触摸事件.另外还提到了响应者链的概念,在IOS中,所有事件有一个最先响应者,事件可以沿着响应者链向下传递. 接下来是UIControl对象 UIControl是UIView的子类,当然也是UIResponder的子类.UIControl是诸如UIButton.UISwitch.UITextField等控件的父类,它本身也包含了一些属性和方法,但是不能直接使用UIControl