UIDatePicker
来源:互联网 发布:淘宝运营月收入多少 编辑:程序博客网 时间:2024/06/06 02:48
案例:
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; }}
0 0
- UIDatePicker
- UIDatePicker
- UIDatePicker
- UIDatePicker
- UIDatePIcker
- UIDatePicker
- UIDatePicker
- UIDatePicker
- UIDatePicker
- UIDatePicker
- UIDatePicker
- UIDatePicker
- UIDatePicker
- UIDatePicker
- UIDatePicker
- UIDatePicker
- UIDatePicker
- UIDatePicker
- 杨辉三角形
- 自定义ImageView处理图片拉伸变形Bug
- 表单基本组件使用2(showMessageDialog和showConfirmDialog)
- iOS开发之生成本地二维码
- iOS 环信集成方法之制作并上传推送证书
- UIDatePicker
- python(四)字典,集合,可变与不可变对象(下)
- 如何调试malloc(堆越界)问题
- 文章标题
- 关于《手机阅读器 之ios编程三年的总结之作》
- 每天一点数据结构之二叉树的查找和删除
- psql语法
- 65 个职场很有技巧的回答
- 20160526 数据分析与SAS4 用于绘图的程序步GCHART(统计图)与GPLOT(散点图)