UIDatePicker
2016-05-26 16:24
323 查看
案例:
DatePicker的键盘处理
》掌握UITextField如果弹出日期选择器并在键盘添加工具条
(1)设置UITextField的inputView属性为日期选择器即可
(2)熟悉UIToolbar的使用,添加UIBarButtonItem
(3)自定义一个键盘工具条,添加在键盘上,设置UITextField的inputAccessoryView属性
(4)通过代理监听键盘工具条的几个按钮
》熟悉代码实现UIToolBar
代码完成
头部文件
使用xib完成toolbar
1.创建xib
1.1 拖toolbar控件,然后在改空间上添加3个barbuttonItem,默认是紧挨着,如果需要间隔:
1.弹框:Flexible space…
2.固定间距:fixed space….(可以在属性中设置间距大小)
1.2 自定义继承Toolbar的视图
CustomToolbar.m
ViewController.m
DatePicker的键盘处理
很多地方都会有点击textField用DatePicker替换键盘位置弹出。
》掌握UITextField如果弹出日期选择器并在键盘添加工具条
(1)设置UITextField的inputView属性为日期选择器即可
(2)熟悉UIToolbar的使用,添加UIBarButtonItem
(3)自定义一个键盘工具条,添加在键盘上,设置UITextField的inputAccessoryView属性
(4)通过代理监听键盘工具条的几个按钮
》熟悉代码实现UIToolBar
代码完成
//代码创建的toolbar - (UIToolbar *)codeCreatToolBar{ UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 375, 44)]; toolBar.backgroundColor = [UIColor grayColor]; UIBarButtonItem *lastItem = [[UIBarButtonItem alloc] initWithTitle:@"上一个" style:UIBarButtonItemStylePlain target:nil action:nil]; UIBarButtonItem *nextItem = [[UIBarButtonItem alloc] initWithTitle:@"下一个" style:UIBarButtonItemStylePlain target:nil action:nil]; UIBarButtonItem *doneItem = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(barButtonItem:)]; doneItem.tag = 100; //固定长度 UIBarButtonItem *flexItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; //代码实现设置宽度 flexItem.width = 30; //可拉伸的按钮 UIBarButtonItem *flexibleItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; //添加toolBar的按钮 toolBar.items = @[lastItem, flexItem, nextItem, flexibleItem, doneItem]; return toolBar; }
- (void)barButtonItem:(UIBarButtonItem *)sender{ if (sender.tag == 100) { //获取日期,显示在textField上 NSDate *date = self.datePicker.date; //日期转字符串 NSDateFormatter *formater = [[NSDateFormatter alloc] init]; [formater setDateFormat:@"yyyyMMdd"]; NSString *dateStr = [formater stringFromDate:date]; self.textField.text = dateStr; } }
头部文件
import "ViewController.h" #import "CustomToolbar.h" @interface ViewController ()<CustomToolbarDelegate> //如果要让键盘的位置替换成pickview,不能用stroyboard @property (strong, nonatomic) UIDatePicker *datePicker; @property (strong, nonatomic) UITextField *textField; @end
- (void)viewDidLoad { [super viewDidLoad]; //创建pickerView self.datePicker = [[UIDatePicker alloc] init]; //输入框 self.textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 80, 200, 40)]; self.textField.backgroundColor = [UIColor grayColor]; [self.view addSubview:self.textField]; //NSLog(@"%@",[NSLocale availableLocaleIdentifiers]);//打印出所有国家的标识 //日期控制的本地化“zh”是中国的日期格式 self.datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh"]; //日期控制格式 self.datePicker.datePickerMode = UIDatePickerModeDate; //设置textField键盘(将键盘的位置替换成datepicker) self.textField.inputView = self.datePicker; #pragma mark - 代码方式在datepicker上面添加一个toolbar UIToolbar *toolBar = [self codeCreatToolBar]; //设置textField的辅助工具条 self.textField.inputAccessoryView = toolBar; }
使用xib完成toolbar
1.创建xib
1.1 拖toolbar控件,然后在改空间上添加3个barbuttonItem,默认是紧挨着,如果需要间隔:
1.弹框:Flexible space…
2.固定间距:fixed space….(可以在属性中设置间距大小)
1.2 自定义继承Toolbar的视图
CustomToolbar.h //协议 @class CustomToolbar; @protocol CustomToolbarDelegate <NSObject> @optional - (void)keyboardToolbar:(CustomToolbar *)toolbar btnDidSelected:(UIBarButtonItem *)barButtonItem; @end @interface CustomToolbar : UIToolbar //代理人 @property (weak, nonatomic) id<CustomToolbarDelegate> delegate; //创建toolbar + (instancetype)toolBar; @end
CustomToolbar.m
#import "CustomToolbar.h" @interface CustomToolbar () @property (weak, nonatomic) IBOutlet UIBarButtonItem *preBarButton; @property (weak, nonatomic) IBOutlet UIBarButtonItem *nextBarButton; - (IBAction)click:(id)sender; @end @implementation CustomToolbar + (instancetype)toolBar{ return [[[NSBundle mainBundle] loadNibNamed:@"CustomToolbar" owner:self options:nil] lastObject]; } - (IBAction)click:(id)sender { //将这个时间传给控制器,通过代理 if ([self.delegate respondsToSelector:@selector(keyboardToolbar:btnDidSelected:)]) { [self.delegate keyboardToolbar:self btnDidSelected:sender]; } } @end
ViewController.m
#pragma mark - xib方式 CustomToolbar *cusToolBar = [CustomToolbar toolBar]; cusToolBar.delegate = self; self.textField.inputAccessoryView = cusToolBar;
#pragma mark - CustomToolbarDelegate methods - (void)keyboardToolbar:(CustomToolbar *)toolbar btnDidSelected:(UIBarButtonItem *)barButtonItem{ if (barButtonItem.tag == 100) { //获取日期,显示在textField上 NSDate *date = self.datePicker.date; //日期转字符串 NSDateFormatter *formater = [[NSDateFormatter alloc] init]; [formater setDateFormat:@"yyyyMMdd"]; NSString *dateStr = [formater stringFromDate:date]; self.textField.text = dateStr; } }
相关文章推荐
- Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
- 基于Silverlight DataGrid中无代码设置开始与结束日期DatePicker的实现方法
- BootStrap的Datepicker控件使用心得分享
- jQuery插件datepicker 日期连续选择
- jquery UI Datepicker时间控件的使用方法(基础版)
- jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
- jquery UI Datepicker时间控件的使用及问题解决
- jquery日历插件datepicker用法分析
- jQuery日历插件datepicker用法详解
- JQuery日期插件datepicker的使用方法
- Jquery日期选择datepicker插件用法实例分析
- jquery UI Datepicker时间控件的使用方法(终结版)
- jquery UI Datepicker时间控件的使用方法(加强版)
- datePicker――日期选择控件(with jquery)
- ASP.NET使用My97DatePicker日期控件实例
- android中DatePicker和TimePicker的使用方法详解
- ASP.NET项目开发中日期控件DatePicker如何使用
- JQuery datepicker 用法详解
- Android中TimePicker与DatePicker时间日期选择组件的使用实例
- jQueryUI中的datepicker使用方法详解