iOS如何自定义UIDatePicker日期选择器视图
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,这篇文章主要为大家展示了"iOS如何自定义UIDatePicker日期选择器视图",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"iOS如何自定义UIDate
千家信息网最后更新 2025年02月07日iOS如何自定义UIDatePicker日期选择器视图
这篇文章主要为大家展示了"iOS如何自定义UIDatePicker日期选择器视图",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"iOS如何自定义UIDatePicker日期选择器视图"这篇文章吧。
代码:
ViewController:
#import@interface ViewController : UIViewController@end#import "ViewController.h"#import "HWDatePicker.h"#define mainW [UIScreen mainScreen].bounds.size.width#define mainH [UIScreen mainScreen].bounds.size.height@interface ViewController () @property (nonatomic, weak) HWDatePicker *datePicker;@property (nonatomic, strong) UITextField *dateTextField;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor blackColor]; //创建控件 [self creatControl];}- (void)creatControl{ //textField _dateTextField = [[UITextField alloc] initWithFrame:CGRectMake(mainW * 0.05, mainW * 0.72, mainW * 0.9, mainW * 0.12)]; _dateTextField.background = [UIImage imageNamed:@"textFieldBj"]; _dateTextField.textAlignment = NSTextAlignmentRight; _dateTextField.placeholder = @"请设置日期"; _dateTextField.delegate = self; UILabel *lab2 = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, mainW * 0.4, mainW * 0.12)]; lab2.textAlignment = NSTextAlignmentLeft; lab2.text = @" 日期"; lab2.textColor = [UIColor grayColor]; _dateTextField.leftView = lab2; _dateTextField.leftViewMode = UITextFieldViewModeAlways; UILabel *lab22 = [[UILabel alloc] initWithFrame:CGRectMake(mainW * 0.12 - 15, 0, 15, mainW * 0.12)]; _dateTextField.rightView = lab22; _dateTextField.rightViewMode = UITextFieldViewModeAlways; [self.view addSubview:_dateTextField]; //日期选择器 HWDatePicker *datePicker = [[HWDatePicker alloc] initWithFrame:CGRectMake(mainW * 0.05, mainH, mainW * 0.9, mainW * 0.5)]; datePicker.delegate = self; [self.view addSubview:datePicker]; self.datePicker = datePicker;}#pragma mark - UITextFieldDelegate- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ if (_datePicker.frame.origin.y != mainH && _datePicker != nil) { [_datePicker dismiss]; return NO; }else if (textField == _dateTextField) { [_datePicker show]; return NO; } return YES;}#pragma mark - HWDatePickerDelegate- (void)datePickerView:(HWDatePicker *)datePickerView didClickSureBtnWithSelectDate:(NSString *)date{ _dateTextField.text = date;}@end
HWDatePicker:
#import@class HWDatePicker;@protocol HWDatePickerDelegate /** * HWDatePicker确定按钮点击代理事件 * * @param datePickerView HWDatePicker * @param date 选中的日期 */- (void)datePickerView:(HWDatePicker *)datePickerView didClickSureBtnWithSelectDate:(NSString *)date;@end@interface HWDatePicker : UIView@property (nonatomic, weak) id delegate;- (void)show;- (void)dismiss;@end#import "HWDatePicker.h"//获得屏幕的宽高#define mainW [UIScreen mainScreen].bounds.size.width#define mainH [UIScreen mainScreen].bounds.size.height@interface HWDatePicker ()@property (nonatomic, strong) UIDatePicker *datePicker;@end@implementation HWDatePicker- (id)initWithFrame:(CGRect)frame{ if (self = [super initWithFrame:frame]) { //背景框 UIImageView *back = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height)]; back.image = [UIImage imageNamed:@"datePickerBj"]; [self addSubview:back]; //日期选择器 _datePicker = [[UIDatePicker alloc] init]; _datePicker.frame = CGRectMake(10, 10, self.frame.size.width - 20, 120); _datePicker.backgroundColor = [UIColor clearColor]; [_datePicker setDatePickerMode:UIDatePickerModeDate]; NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]; _datePicker.locale = locale; NSDateFormatter *formatter_minDate = [[NSDateFormatter alloc] init]; [formatter_minDate setDateFormat:@"yyyy-MM-dd"]; NSDate *minDate = [formatter_minDate dateFromString:@"2008-01-01"]; formatter_minDate = nil; [_datePicker setMinimumDate:minDate]; [self addSubview:_datePicker]; //确定按钮 UIButton *sureBtn = [[UIButton alloc] initWithFrame:CGRectMake((self.frame.size.width - mainW * 0.36) * 0.5, self.frame.size.height * 0.747, mainW * 0.36, mainW * 0.11)]; [sureBtn setImage:[UIImage imageNamed:@"sureBtn"] forState:UIControlStateNormal]; [sureBtn addTarget:self action:@selector(sureBtnOnClick) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:sureBtn]; } return self;}- (void)sureBtnOnClick{ [self dismiss]; if (_delegate && [_delegate respondsToSelector:@selector(datePickerView:didClickSureBtnWithSelectDate:)]) { [_delegate datePickerView:self didClickSureBtnWithSelectDate:[self getDateString]]; }}- (NSString *)getDateString{ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSString *date = [dateFormatter stringFromDate:[self.datePicker date]]; return date;}- (void)show{ [UIView animateWithDuration:0.3 animations:^{ self.frame = CGRectMake(mainW * 0.05, mainH - mainW * 0.75, mainW * 0.9, mainW * 0.5); }];}- (void)dismiss{ [UIView animateWithDuration:0.3 animations:^{ self.frame = CGRectMake(mainW * 0.05, mainH, mainW * 0.9, mainW * 0.5); }];}@end
以上是"iOS如何自定义UIDatePicker日期选择器视图"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
日期
选择
视图
内容
篇文章
按钮
学习
帮助
事件
代码
屏幕
控件
易懂
更多
条理
知识
编带
背景
行业
资讯
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全办公室设在哪儿
steam没有游戏只有服务器
律师办公数据库
校园网络安全体系构建与实践研究
6000w服务器电源
天津数据库安全
django添加数据库表
私人影院服务器二手好用吗
华为网络安全考试试题
数据库技术在交通行业的用途
软件开发技术措施
小学网络安全班会心得
赣州为什么没有软件开发公司
中兴软件开发笔试题库
网络安全意识的培育
能源企业网络安全检查表
泰坦之旅dlc无法连接到服务器
北京正规软件开发特征
网络安全培训怎么收费
如何将写好的程序挂到服务器上
access数据库历年真题
世界银行数据库
抖抖直播软件开发
计算机网络安全趋势
大专软件开发就业方向
组态王一定要做数据库么
河南办公系统软件开发价钱
关系型数据库的集合和表什么区别
企业网络安全建设分几步走
网络安全教育的基本内容