iOS如何自定义UIDatePicker日期选择器视图
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章主要为大家展示了"iOS如何自定义UIDatePicker日期选择器视图",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"iOS如何自定义UIDate
千家信息网最后更新 2025年11月10日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安全错误
数据库的锁怎样保障安全
企业网网络安全构建实训
mc网易版练习跑搭的服务器
数据中心服务器装机量
新天科技软件开发怎么样
万方数据库一框式平台
杭州凝蓝网络技术
手机端炒股软件开发
观澜华为服务器厂家
简易社交软件开发
工业以太网网络安全
河南软件开发有多少
数据库 下载文件
文献数据库有些啥
mysql数据库转码
谷安网络安全培训
数据库结构与计算
win7卸载数据库mysql
openwrt搭建服务器
视频直播服务器架构
hp服务器收集日志
层次模型 数据库
山东三个橙子网络技术
网络技术算it
能定位经度纬度的软件开发
CS徐亮服务器
软件开发财务工资多少
宽带拨号服务器没用
武汉市百鲤网络技术有限公司
通信网络技术演进
如何防范家庭网络安全做法