美文网首页移动开发干货店码农的世界程序员
IOS选择器--日期选择器使用详解

IOS选择器--日期选择器使用详解

作者: 星辰_入海 | 来源:发表于2019-04-15 20:15 被阅读1次

小编今天继续开始讲解IOS开发中另一个重要的内容--选择器的使用
选择器分为:日期选择器和普通选择器
今天,我们先介绍日期选择器,下一篇文章介绍普通选择器以及数据源的实现

日期选择器

效果如下:


效果图
定义:UIDatePicker日期选择器,实现了对于日期的选择,日期的选择有四种模式【日期,日期时间,时间,倒计时】
图1--倒计时 图2--日期 图3--时间 图4--日期时间
设置方法,在控制版中设置类型
图5--设置方法

实现部分

  • 故事版实现
#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *label;
@property (weak, nonatomic) IBOutlet UIDatePicker *dataPicker;
@end

@implementation ViewController
- (IBAction)onClick:(UIButton *)sender {
    NSDate *theDate = self.dataPicker.date;
    NSLog(@"the date picked is :%@",[theDate descriptionWithLocale:[NSLocale currentLocale]]);
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"YYYY-MM-dd HH:mm:ss";
    NSLog(@"the date formate is:%@",[dateFormatter stringFromDate:theDate]);
    self.label.text = [dateFormatter stringFromDate:theDate];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}
@end

代码分析:

  • NSDate *theDate = self.dataPicker.date;
这部分内容实现了日期的载入,类型为NSDate的对象接受传入dataPicker的date数据,并将数据打印出来,跟踪日期结果,打印结果是NSDate的默认形式
图6--跟踪输出值
  • NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"YYYY-MM-dd HH:mm:ss";
为了实现日期数据输出的格式为自定义格式,我们应该使用类似于NSString的stringWithFormat的形式一样,调用NSDateFormatter创建形式为YYYY-MM-dd HH:mm:ss的输出格式
图6--格式转换输出值
  • 代码实现

1.首先我们先创建一个标签(UILabel)和按钮(UIButton)的输出口

@interface ViewController ()
@property (nonatomic,strong) UIDatePicker *datePicker;
@property (nonatomic,strong) UILabel *label;
@end

2.初始化日期选择器

//日期选择器
    CGFloat datePickerWidth = 320;
    CGFloat datePickerHeight = 167;
    self.datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, datePickerWidth, datePickerHeight)];
    //设置中文
    self.datePicker.locale = [NSLocale localeWithLocaleIdentifier:@"zh-Hans"];
    //设置日期格式
    self.datePicker.datePickerMode = UIDatePickerModeDateAndTime;
    
    [self.view addSubview:self.datePicker];
注意:中文设置方式,使用self.datePicaker.lacale = [NSLocale localeWithLocaleIdentifier:@"zh-Hans"];进行设置语言类型为中文
//设置日期格式
    self.datePicker.datePickerMode = UIDatePickerModeDateAndTime;

Mode

typedef NS_ENUM(NSInteger, UIDatePickerMode) {
    UIDatePickerModeTime,           // Displays hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. 6 | 53 | PM)
    UIDatePickerModeDate,           // Displays month, day, and year depending on the locale setting (e.g. November | 15 | 2007)
    UIDatePickerModeDateAndTime,    // Displays date, hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. Wed Nov 15 | 6 | 53 | PM)
    UIDatePickerModeCountDownTimer, // Displays hour and minute (e.g. 1 | 53)
} __TVOS_PROHIBITED;

3.设置标签以及按钮(与之前文章相同,用于显示值的变化)

//添加标签
    CGFloat labelWidth = 200;
    CGFloat labelHeight = 21;
    CGFloat labelTopView = 281;
    self.label = [[UILabel alloc] init];
    self.label.text = @"Lable";
    self.label.frame = CGRectMake((screen.size.width-labelWidth), (labelTopView), labelWidth, labelHeight);
    self.label.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:self.label];
    
    //添加按钮
    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    [button setTitle:@"Button" forState:UIControlStateNormal];
    CGFloat buttonWidth = 46;
    CGFloat buttonHeight = 30;
    CGFloat buttonTopView = 379;
    button.frame = CGRectMake((screen.size.width-buttonWidth) /2, buttonTopView, buttonWidth, buttonHeight);
    //指定事件
    [button addTarget:self action:@selector(onclick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];

4.实现按钮的选择@selector(onclick:)

- (void)onclick:(id)sender{
    NSDate *theDate = self.datePicker.date;
    NSLog(@"the date picked is: %@",[theDate descriptionWithLocale:[NSLocale currentLocale]]);
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"YYYY-MM-dd HH:mm:ss";
    NSLog(@"the date formate is:%@",[dateFormatter stringFromDate:theDate]);
    self.label.text = [dateFormatter stringFromDate:theDate];
}

总结:通过以上方法就可以实现一个简单的日期选择器,通常日期选择器使用于用户进行选择后将日期的值传入UITextField etc...本回内容相对简单,下一回讲解普通选择器PickerView的设置以及数据源以及委托的实现过程,也会提及到像工程中自己添加属性表并读取的方法

相关文章

  • CSS选择器

    元素选择器 类选择器详解 ID选择器详解 属性选择器详解 后代选择器 子元素选择器 相邻兄弟选择器 CSS派生选择器:

  • CSS选择器

    CSS 元素选择器CSS 选择器分组CSS 类选择器详解CSS ID 选择器详解CSS 属性选择器详解CSS 后代...

  • IOS选择器--日期选择器使用详解

    小编今天继续开始讲解IOS开发中另一个重要的内容--选择器的使用选择器分为:日期选择器和普通选择器今天,我们先介绍...

  • 【iOS】开源组件 BRPickerView

    BRPickerView BRPickerView 封装的是iOS中常用的选择器组件,主要包括:日期选择器(支持年...

  • iOS 省市区选择器

    1、iOS 省市区选择器AddressPickerView封装 使用: 2、iOS 地址选择器(省市区)

  • Material Design 设计语言(十一)日期选择器

    日期选择器(Pickers) 日期选择器允许用户选择日期或日期范围。 原则 1、关联 日期选择器可以显示过去、现在...

  • 小程序picker组件

    时间选择器 日期选择器 单列选择器 扫码体验

  • iOS 日期选择器

    DatePicker 一款简单的iOS系统风格的日期选择器, 使用windwo作为容器,能自定义外观, 使用blo...

  • 钉钉日期选择器 - QTimePicker

    钉钉日期选择器 - QTimePicker 钉钉日期选择器 - QTimePicker

  • layui.laydate时间控件

    主要功能:年选择器、年月选择器、日期选择器、时间选择器、日期时间选择器 五种类型的选择方式为基本核心,并且均支持范...

网友评论

    本文标题:IOS选择器--日期选择器使用详解

    本文链接:https://www.haomeiwen.com/subject/eivpwqtx.html