UIDatePicker提供了一个快速选择日期和时间的控件,他是UIControl的子类,专门用于日期时间的选择。其样式可以通过UIDatePicker的属性进行灵活设置,同时也可以获取到当前UIDatePicker的值。UIDatePicker有几个方法和属性需要重点掌握。

@property (nonatomic) UIDatePickerMode datePickerMode; //设置UIDatePicker的展示样式,有四种样式

UIDatePickerModeTime,           // 仅显示时间
    UIDatePickerModeDate,           // 显示年月日
    UIDatePickerModeDateAndTime,    // 显示年月日和时间
    UIDatePickerModeCountDownTimer  //倒计时

@property (nullable, nonatomic, strong) NSLocale   *locale;   //设置地区,地区的设置会影响日期以及时间文字的展示方式

@property (nullable, nonatomic, strong) NSTimeZone *timeZone; //设置时区

@property (nonatomic, strong) NSDate *date; //获取当前日期/时间值

- (void)setDate:(NSDate *)date animated:(BOOL)animated;//设置当前显示的日期时间

下面来看一个完整示例,选择时间后点击确定按钮会弹出提示框,提示框内容为选择的时间

#import "ViewController.h"

@interface ViewController ()
@property(nonatomic,strong)UIDatePicker *datePicker;
@property(nonatomic,strong)UIButton *button;
@end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubview:self.datePicker];
[self.view addSubview:self.button];
} //懒加载
- (UIDatePicker *)datePicker{
if (_datePicker == nil) {
self.datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(, , self.view.frame.size.width, )];
_datePicker.datePickerMode = UIDatePickerModeDateAndTime;
_datePicker.locale = [[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"];
}
return _datePicker;
} //懒加载按钮,用于展示datePicker选中的时间
- (UIButton *)button{
if (_button == nil) {
self.button = [[UIButton alloc]initWithFrame:CGRectMake((self.view.frame.size.width - ) / 2.0, , , )];
[_button setTitle:@"确定" forState:UIControlStateNormal];
_button.backgroundColor = [UIColor blueColor];
[_button addTarget:self action:@selector(clickButton) forControlEvents:UIControlEventTouchUpInside];
}
return _button;
} //确定按钮被点击
- (void)clickButton{
//获取用户通过UIDatePicker设置的时间
NSDate *date = [self.datePicker date]; //创建一个日期格式器
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
//为日期格式器设置格式字符串
[dateFormatter setDateFormat:@"yyyy年MM月dd日 HH:mm +0800"];
//使用日期格式器格式化日期和时间
NSString *dateString = [dateFormatter stringFromDate:date];
NSString *message = [NSString stringWithFormat:@"您选择的日期和时间是:%@",dateString]; //警告框
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"日期和时间" message:message preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil]; [alert addAction:action]; [self presentViewController:alert animated:YES completion:nil];
} @end

运行截图:

UIDatePicker基本使用的更多相关文章

  1. UI--UIPickerView和UIDatePicker的总结

    回到顶部 UIPickerView的主要方法和城市选择器的修正 UIPickerView只有两个数据源方法.要想完整地显示出PickerView,需要结合使用代理方法 数据源方法: // 一共有多少组 ...

  2. iOs基础篇(二十二)—— UIPickerView、UIDatePicker控件的使用

    一.UIPickerView UIPickerView是一个选择器控件,可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活. 1.常用属性 (1)num ...

  3. UIDatePicker和UIToolbar的使用

    功能,用UIDatePicker 和UIToolbar 实现点击文本框弹出日期选择空间. 点击确定按钮获取时间显示到对应的Text Field里面,点击取消按钮隐藏键盘. 1.创建textField控 ...

  4. 自定义一个只显示年月的DatePicker(UIDatePicker无法实现年月显示)

    HooDatePicker 介绍(introduction) ==================================================项目需要一个DatePicker,只显 ...

  5. iOS开发--UIDatePicker

    UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期.时间和持续时长的输入.日期选取器的各列会按照指定的风格进行自动配置,这样 ...

  6. IOS第11天(4:UIDatePicker时间选择,和键盘处理,加载xib文件,代理模式)

    ***控制层 #import "ViewController.h" #import "CZKeyboardToolbar.h" @interface ViewC ...

  7. UIDatePicker 日期/时间选取器(滚轮)—IOS开发

    UIDatePicker 是一个控制器类,封装了 UIPickerView,但是他是UIControl的子类,专门用于接受日期.时间和持续时长的输入.日期选取器的各列会按照指定的风格进行自动配置,这样 ...

  8. UIDatePicker的用法

    目录[-] 1.Locale 2.Calendar 3.timeZone 4.date 5.minimumDate 6.maximumDate 7.countDownDuration 8.minute ...

  9. UIkit框架之UIDatePicker

    1.继承链:UIcontrol:UIview:UIResponder:NSOobject 2.和uidatepicker相关联的触发事件是 UIControlEventValueChanged,当使用 ...

  10. Objective-c——UI进阶开发第一天(UIPickerView和UIDatePicker)

    一.知识点 1.介绍数据选择控件UIPickerView和日期选择控件UIDatePicker控件 * UIPickerView的案例 * 点餐系统 * 城市选择 * 国旗选择 * UIDatePic ...

随机推荐

  1. Scikit-learn Preprocessing 预处理

    本文主要是对照scikit-learn的preprocessing章节结合代码简单的回顾下预处理技术的几种方法,主要包括标准化.数据最大最小缩放处理.正则化.特征二值化和数据缺失值处理. 数学基础 均 ...

  2. Educational Codeforces Round 78 (Rated for Div. 2) C. Berry Jam

    链接: https://codeforces.com/contest/1278/problem/C 题意: Karlsson has recently discovered a huge stock ...

  3. Ant Design Pro 鉴权/ 权限管理

    https://pro.ant.design/docs/authority-management-cn ant-design-pro 1.0.0 V4 最近需要项目需要用扫码登录,因此就使用antd ...

  4. ZBX_TCP_READ() time out windows

    zabbix 客户端无法推送数据,日志显示在启动的时候ZBX_TCP_READ() time out windows, 场景:agent 到proxy的10051通,proxy到agnet的10050 ...

  5. Linux/Unix 多线程通信

    线程间无需特别的手段进行通信,因为线程间可以共享数据结构,也就是一个全局变量可以被两个线程同时使用. 不过要注意的是线程间需要做好同步,一般用 mutex. 可以参考一些比较新的 UNIX/Linux ...

  6. 【字符串】KMP

    Algorithm Task 给定一个文本串 \(S\) 和一个模式串 \(T\),求 \(T\) 在 \(S\) 中出现的所有位置. Limitations 要求时空复杂度均为线性. Solutio ...

  7. 深入js系列-语法

    语法 语句和表达式 我们用英语的术语来说明它们的区别 "句子"(sentence)是完整表达某个意思的一组词,由一个或多个"短语"(phrase)组成,它们之间 ...

  8. iptables 常用命令示例

    一.常用命令示例: 1.命令 -A, --append 范例:iptables -A INPUT -p tcp --dport 80 -j ACCEPT 说明 :新增规则到INPUT规则链中,规则时接 ...

  9. 2018-2019-2 网络对抗技术 20165318 Exp 8 Web基础

    2018-2019-2 网络对抗技术 20165318 Exp 8 Web基础 原理与实践说明 实践内容概述 基础问题回答 实践过程记录 1.Web前端:HTML 2.Web前端:javascipt ...

  10. 微信网页授权+获取用户基本信息+强制关注+JSSDK分享参数

    网页授权+获取用户基本信息+强制关注+JSSDK分享参数 //支付宝红包口令列表 public function view(){ $openid = ""; Vendor('Wei ...