功能,用UIDatePicker 和UIToolbar

实现点击文本框弹出日期选择空间.

点击确定按钮获取时间显示到对应的Text Field里面,点击取消按钮隐藏键盘.

1.创建textField控件,并生成属性.

UIDatePicker和UIToolbar的使用-LMLPHP

xcode版本不一样,textField显示的格式也不一样,建议大家可以在text文本框里面设置一个背景图片.这样在什么样的版本下显示的都一样.

@property (weak, nonatomic) IBOutlet UITextField *textField;

2.创建一个日期选择控件并设置属性

- (void)viewDidLoad {

[super viewDidLoad];

//创建日期选择控件

UIDatePicker *datePicker = [[UIDatePicker alloc] init];

//设置控件的语言和区域,修改为中国简体字体

datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh-Hans"];

//设置控件的显示模式,显示日期和时间.

datePicker.datePickerMode = UIDatePickerModeDateAndTime;

//把这个日期选择控件设置为文本框的弹出键盘

self.textField.inputView = datePicker;

   self.datePicker = datePicker;  //最后解释这句代码的意思.

}

UIDatePicker和UIToolbar的使用-LMLPHP

3.创建UIToobar(工具栏),并设置属性和工具栏上面的按钮以及frame.把工具栏设置成为键盘上面的工具栏

    //创建UItoolbar(工具栏)以及设置属性
UIToolbar *toolBar = [[UIToolbar alloc] init]; //设置工具栏的背景色
//toolBar.barTintColor = [UIColor purpleColor]; //这个方法是继承自UIView,不建议使用.
toolBar.barTintColor = [UIColor purpleColor]; //自己的方法 //设置工具栏的frame
toolBar.frame = CGRectMake(, , , ); //把工具栏设置成为日期选择控件上面的工具栏
//inputAccessoryView方法表示键盘上面的工具栏(把控件设置为inputAccessoryView后,这个控件的frame中,只能修改height,其他的属性无法设置,所以在设置frame时,只设置了高度)
self.textField.inputAccessoryView = toolBar; //为工具栏添加按钮
//添加关闭按钮
UIBarButtonItem *itemClose = [[UIBarButtonItem alloc] initWithTitle:@"关闭" style:UIBarButtonItemStylePlain target:self action:@selector(didClickCloseButton)];
//在工具栏的按钮中,只有两个按钮,前面的取消和后面的完成,工具栏中的按钮只能按顺序排放,所以中间需要加一个弹簧按钮
//添加弹簧按钮
UIBarButtonItem *itemSpring = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
//添加完成按钮
UIBarButtonItem *itemDone = [[UIBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:nil action:@selector(didClickDoneButton)];
//将三个创建好的控件设置到工具栏上
toolBar.items = @[itemClose, itemSpring, itemDone];

4.实现点击取消(didClickCloseButton)和完成(didClickDoneButton)按钮时的事件

//实现点击了取消按钮的方法
-(void)didClickCloseButton
{
[self.view endEditing:YES];
}
//实现点击完成按钮时的方法
-(void)didClickDoneButton
{
//1.获取用户选择的日期
//因为datePicker日期选择控件是在viewDidLoad方法里面创建的,在这里拿不到.所以创建一个属性.并且在创建好日期选择控件后赋值.(在创建日期选择控件时有说明)
NSDate *selectdDate = self.datePicker.date;
//2.把获取的日期转换为字符串对象,并设置到文本框中
//NSDateFormatter这个类型的对象用作就是:1.把NSDate转换成NSString 2.把NSString转换成NSDate(只能做日期和字符串之间的转换)
//NSCalendar 这个是用来获取时间(NSDate)中的部分数据
//2.1创建一个日期格式化器
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//2.2设置要格式化的日期格式
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
//2.3进行转换
NSString *stringDate = [formatter stringFromDate:selectdDate];
//3.进行赋值
self.textField.text = stringDate;
//4.关闭键盘
[self.view endEditing:YES];

UIDatePicker和UIToolbar的使用-LMLPHP

04-14 02:55