温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

iOS中怎么自定义一个日期选择器

发布时间:2021-06-16 14:29:06 来源:亿速云 阅读:290 作者:Leah 栏目:移动开发

今天就跟大家聊聊有关iOS中怎么自定义一个日期选择器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一、封装日期选择器类YCDatePickerView

1、新建一个类,基于UIView,取名YCDatePickerView。

2、YCDatePickerView类中.h文件代码如下:

typedef void (^MyBasicBlock)(id result); #import <UIKit/UIKit.h> @interface YCDatePickerView : UIView @property (nonatomic, strong) UIButton *btnConfirm; @property (nonatomic, strong) UIButton *btnCancel; @property (nonatomic, strong) UIDatePicker *datePicker; @property (nonatomic, copy) MyBasicBlock selectBlock; + (YCDatePickerView *)datePickerViewWithMode:(UIDatePickerMode) datePickerMode bolck:(MyBasicBlock)block; @end

3、YCDatePickerView类中.m文件代码如下:

#define SCREEN_WIDTH   [[UIScreen mainScreen] bounds].size.width #define SCREEN_HEIGHT   [[UIScreen mainScreen] bounds].size.height #define kTopBarViewHeight    40 #define kButton_Width      40 #define kButton_Height     40 #define kDatePicker_Height   256 #import "YCDatePickerView.h" @implementation YCDatePickerView - (id)initWithFrame:(CGRect)frame {   self = [super initWithFrame:frame];   if (self) {     UIView *topBarView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, kTopBarViewHeight)];     topBarView.backgroundColor = [UIColor orangeColor];     [self addSubview:topBarView];     _btnConfirm = [[UIButton alloc] initWithFrame:CGRectMake(self.frame.size.width-kButton_Width-10, 0, kButton_Width, kButton_Height)];     [_btnConfirm addTarget:self action:@selector(btnConfirm:) forControlEvents:UIControlEventTouchUpInside];     [_btnConfirm setTitle:@"确定" forState:UIControlStateNormal];     [topBarView addSubview:_btnConfirm];     _btnCancel = [[UIButton alloc] initWithFrame:CGRectMake(10, 0, kButton_Width, kButton_Height)];     [_btnCancel addTarget:self action:@selector(btnCancel:) forControlEvents:UIControlEventTouchUpInside];     [_btnCancel setTitle:@"取消" forState:UIControlStateNormal];     [topBarView addSubview:_btnCancel];     _datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(topBarView.frame), self.frame.size.width, self.frame.size.height-kTopBarViewHeight)];     _datePicker.backgroundColor = [UIColor whiteColor];     [self addSubview:_datePicker];   }   return self; } - (void)btnConfirm:(id)sender {   if (self.selectBlock) {     self.selectBlock(self.datePicker.date);   } } - (void)btnCancel:(id)sender {   if (self.selectBlock) {     self.selectBlock(nil);   } } + (YCDatePickerView *)datePickerViewWithMode:(UIDatePickerMode) datePickerMode bolck:(MyBasicBlock)block {   YCDatePickerView *picker = [[YCDatePickerView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, kDatePicker_Height)];   picker.datePicker.datePickerMode = datePickerMode;   picker.selectBlock = block;   return picker; } @end

二、YCDatePickerView的使用

1、在ViewController中导入头文件

#import "YCDatePickerView.h"

2、在ViewController.m中添加如下代码

#define SCREEN_WIDTH   [[UIScreen mainScreen] bounds].size.width #define SCREEN_HEIGHT   [[UIScreen mainScreen] bounds].size.height #import "ViewController.h" #import "YCDatePickerView.h" @interface ViewController () @property (retain, nonatomic) YCDatePickerView *datePicker; @end @implementation ViewController - (void)viewDidLoad {   [super viewDidLoad];   UITextField *begin = [[UITextField alloc] initWithFrame:CGRectMake(10, 70, SCREEN_WIDTH-20, 30)];   begin.placeholder = @"请输入开始时间";   begin.borderStyle = UITextBorderStyleRoundedRect;   [self.view addSubview:begin];   __weak ViewController *weakself = self;   begin.inputView = [YCDatePickerView datePickerViewWithMode:UIDatePickerModeDate                              bolck:^(NSDate *result) {                                if (result) {                                  begin.text = [weakself dateToString:result];                                }                                [begin resignFirstResponder];                              }];   UITextField *end = [[UITextField alloc] initWithFrame:CGRectMake(10, 120, SCREEN_WIDTH-20, 30)];   end.placeholder = @"请输入结束时间";   end.borderStyle = UITextBorderStyleRoundedRect;   [self.view addSubview:end];   end.inputView = [YCDatePickerView datePickerViewWithMode:UIDatePickerModeDate                                    bolck:^(NSDate *result) {                                      if (result) {                                        end.text = [weakself dateToString:result];                                      }                                      [end resignFirstResponder];                                    }]; } //日期转为字符串 - (NSString *)dateToString:(NSDate *)date {   NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];   [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];   NSString *strDate = [dateFormatter stringFromDate:date];   return strDate; } @end

看完上述内容,你们对iOS中怎么自定义一个日期选择器有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ios
AI