首页 > 代码库 > UI进阶--UIDatePicker和UIToolBar控件
UI进阶--UIDatePicker和UIToolBar控件
Date Picker:显示时间的控件有默认宽高,不用设置数据源和代理。
一些基本属性:
1 @property (nonatomic) UIDatePickerMode datePickerMode; // default is UIDatePickerModeDateAndTime。UIDatePicker的格式,默认是时间加日期的显示方式2 @property (nonatomic, retain) NSLocale *locale; // default is [NSLocale currentLocale]. setting nil returns to default。本地化。3 @property (nonatomic, copy) NSCalendar *calendar; // default is [NSCalendar currentCalendar]. setting nil returns to default。日历。4 @property (nonatomic, retain) NSTimeZone *timeZone; // default is nil. use current time zone or time zone from calendar。时区。5 @property (nonatomic, retain) NSDate *date; // default is current date when picker created. Ignored in countdown timer mode. for that mode, picker starts at 0:00。时间。6 @property (nonatomic, retain) NSDate *minimumDate; // specify min/max date range. default is nil. When min > max, the values are ignored. Ignored in countdown timer mode。最小时间。7 @property (nonatomic, retain) NSDate *maximumDate; // default is nil。最大时间。
UIToolBar,只能添加UIBarButtonItem子控件。用作间隔的Item样式Flexible Space Bar Button Item能够自动填补满Bar中的空隙,Fixed Space Bar Button Item只能填充固定的空隙。
自定义XIB的界面:
自定义一个键盘:当点击文本输入框时弹出一个日期选择器,示例代码如下:
自定义的UIToolBar:
1 // 2 // JWKeyboardToolbar.h 3 // DatePicker 4 // 5 // Created by xiaomoge on 14/12/27. 6 // Copyright (c) 2014年 xiaomoge. All rights reserved. 7 // 8 9 #import <UIKit/UIKit.h>10 11 @class JWKeyboardToolbar;12 @protocol JWKeyboardToolbarDelegate <NSObject>13 14 @optional15 16 /**17 * item.tag 0 表示上一个按钮 1:下一个按钮 2:done完成按钮18 */19 -(void)keyboardToolbar:(JWKeyboardToolbar *)toolbar btndidSelected:(UIBarButtonItem *)item;20 21 @end22 23 @interface JWKeyboardToolbar : UIToolbar24 25 +(instancetype)toolbar;26 27 @property (weak, nonatomic) id<JWKeyboardToolbarDelegate> kbDelegate;//键盘的代理28 29 @end
1 // 2 // JWKeyboardToolbar.m 3 // DatePicker 4 // 5 // Created by xiaomoge on 14/12/27. 6 // Copyright (c) 2014年 xiaomoge. All rights reserved. 7 // 8 9 #import "JWKeyboardToolbar.h"10 11 12 @interface JWKeyboardToolbar()13 14 @end15 16 @implementation JWKeyboardToolbar17 18 +(instancetype)toolbar{19 return [[[NSBundle mainBundle] loadNibNamed:@"JWKeyboardToolbar" owner:nil options:nil] lastObject];//JWKeyboardToolbar.xib为上面xib图20 }21 22 - (IBAction)itemBtnClick:(id)sender {23 24 //判断代理有没有实现方法25 if ([self.kbDelegate respondsToSelector:@selector(keyboardToolbar:btndidSelected:)]) {26 [self.kbDelegate keyboardToolbar:self btndidSelected:sender];27 }28 29 }30 @end
Controller:
//// ViewController.m// DatePicker//// Created by xiaomoge on 14/12/26.// Copyright (c) 2014年 xiaomoge. All rights reserved.//#import "ViewController.h"#import "JWKeyboardToolbar.h"@interface ViewController ()<JWKeyboardToolbarDelegate>@property (strong, nonatomic) UIDatePicker *datepicker;@property (weak, nonatomic) IBOutlet UITextField *textField;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; //创建datapikcer self.datepicker = [[UIDatePicker alloc] init]; //本地化 self.datepicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh"]; //日期控件格式 self.datepicker.datePickerMode = UIDatePickerModeDate; //设置textfield的键盘 self.textField.inputView = self.datepicker; //创建一个UIToolBar JWKeyboardToolbar *toolbar = [JWKeyboardToolbar toolbar]; //设置键盘的代理 toolbar.kbDelegate = self; //设置textfield的辅助工具条 self.textField.inputAccessoryView = toolbar;}#pragma mark 自定义键盘工具条的代理方法-(void)keyboardToolbar:(CZKeyboardToolbar *)toolbar btndidSelected:(UIBarButtonItem *)item{ if (item.tag == 2) {//Done按钮点击 //获取日期显示在textField NSDate *date = self.datepicker.date; //日期转字符串 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //设置日期格式 dateFormatter.dateFormat = @"yyyyMMdd"; NSString *dateStr = [dateFormatter stringFromDate:date]; self.textField.text = dateStr; }}@end
上面创建的UIToolBar是通过xib创建的,以下是通过纯代码创建:
1 -(void)codeForToolbar{ 2 //代码创建UIToolbar 3 UIToolbar *toolbar = [[UIToolbar alloc] init]; 4 toolbar.backgroundColor = [UIColor grayColor]; 5 //屏幕宽度 6 CGFloat screenW = [[UIScreen mainScreen] bounds].size.width; 7 toolbar.bounds = CGRectMake(0, 0, screenW, 44); 8 //上一个按钮 9 UIBarButtonItem *previousBtn = [[UIBarButtonItem alloc] initWithTitle:@"上一个" style:UIBarButtonItemStylePlain target:nil action:nil];10 //下一个按钮11 UIBarButtonItem *nextBtn = [[UIBarButtonItem alloc] initWithTitle:@"下一个" style:UIBarButtonItemStylePlain target:nil action:nil];12 //done按钮13 UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:nil action:nil];14 15 //固定长度的按钮16 UIBarButtonItem *fixedBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];17 //代码实现要设置宽度18 fixedBtn.width = 10;19 20 //可拉伸的按钮21 UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 22 //添加UIToolbar里面的按钮23 toolbar.items = @[previousBtn,fixedBtn,nextBtn,flexible,doneBtn];24 }
UI进阶--UIDatePicker和UIToolBar控件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。