iOS开发中UIDatePicker控件的使用方法简介

iOS上的选择时间日期的控件是这样的,左边是时间和日期混合,右边是单纯的日期模式。

您可以选择自己需要的模式,Time, Date,Date and Time  , Count Down Timer四种模式。

本篇文章简单介绍下PickerDate控件的使用
1、新建一个Singe View Application,命名为DatePickDemo,其他设置如图

2、放置控件
打开ViewController.xib,拖拽一个DatePicker控件放到界面上,再拖拽一个Button控件放到界面上,双击Button,输入"选择日期时间"

3、建立xib和ViewController的关联
按下command+alt+enter键打开Assistant Editor,选中DatePicker按住Control键,拖拽到viewController.h上,

建立Outlet datePicker。
以同样方式给Button建立一个Action关联映射,命名为selectDate,事件类型为默认的Touch Up Inside。
4、实现代码
单击ViewController.m,找到刚才创建的

代码如下:

- (IBAction)selectDate:(id)sender {
}

在这里添加响应代码

代码如下:

- (IBAction)selectDate:(id)sender {
    NSDate *select = [datePicker date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
    NSString *dateAndTime =  [dateFormatter stringFromDate:select];
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"时间提示" message:dateAndTime delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
    [alert show];
}

运行看效果:

5、修改模式成Date模式,修改代码

代码如下:

[dateFormatter setDateFormat:@"yyyy-MM-dd"];

常用参数
上面已经提到了一些常用参数的使用,下面再来列一下比较常用的几个:
1.Locale
设置DatePicker的地区,即设置DatePicker显示的语言。

跟踪所有可用的地区,取出想要的地区

代码如下:

NSLog(@"%@", [NSLocale availableLocaleIdentifiers]);

2. 设置日期选择控件的地区

代码如下:

[datePicker setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_Hans_CN"]];

代码如下:

[datePicker setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"en_SC"]];

Calendar
设置DatePicker的日历。

默认为当天。

代码如下:

[datePicker setCalendar:[NSCalendar currentCalendar]];

3.timeZone
设置DatePicker的时区。

默认为设置为:

代码如下:

[datePicker setTimeZone:[NSTimeZone defaultTimeZone]];

4.date
设置DatePicker的日期。

默认设置为:

代码如下:

[datePicker setDate:[NSDate date]];

5.minimumDate
设置DatePicker的允许的最小日期。

6.maximumDate
设置DatePicker的允许的最大日期。

7.countDownDuration
设置DatePicker的倒计时间.

1) 设置日期选择的模

代码如下:

[self.datePicker setDatePickerMode:UIDatePickerModeCountDownTimer];

2) 设置倒计时的时长

注意:设置倒计时时长需要在确定模式之后指定

代码如下:

// 倒计时的时长,以秒为单位

[self.datePicker setCountDownDuration:10 * 60];

8.minuteInterval
你可以将分钟表盘设置为以不同的时间间隔来显示分钟,前提是该间隔要能够让60整除。默认间隔是一分钟。如果要使用不同的间隔,需要改变 minuteInterval属性:

代码如下:

// 设置分钟间隔

datePicker.minuteInterval = 15;

9.datePickerMode
9.1    UIDatePickerModeTime,

代码如下:

// Displays hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. 6 | 53 | PM)

显示小时,分钟和AM/PM,这个的名称是根据本地设置的

代码如下:

[datePicker setDatePickerMode:UIDatePickerModeTime];

9.2    UIDatePickerModeDate,

// Displays month, day, and year depending on the locale setting (e.g. November | 15 | 2007)

显示年月日,名称根据本地设置的

代码如下:

[datePicker setDatePickerMode:UIDatePickerModeDate];

9.3 默认是显示这种模式

代码如下:

UIDatePickerModeDateAndTime,    // Displays date, hour, minute, and optionally AM/PM designation depending on the locale setting

(e.g. Wed Nov 15 | 6 | 53 | PM)

显示日期,小时,分钟,和AM/PM,名称是根据本地设置的

代码如下:

[datePicker setDatePickerMode:UIDatePickerModeDateAndTime];

9.4

代码如下:

UIDatePickerModeCountDownTimer  // Displays hour and minute (e.g. 1 | 53)

显示小时和分钟

代码如下:

[datePicker setDatePickerMode:UIDatePickerModeCountDownTimer];

10. UIDatePicker使用教程一。
10.1初始化

代码如下:

// 不用设置宽高,因为它的宽高是固定的

UIDatePicker *datePicker = [[UIDatePicker alloc] init];

10.2常用设置

代码如下:

// 设置区域为中国简体中文

datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];

// 设置picker的显示模式:只显示日期

datePicker.datePickerMode = UIDatePickerModeDate;

10.3UIDatePicker需要监听值的改变

代码如下:

[datePicker addTarget:self action:@selector(dateChange:) forControlEvents:UIControlEventValueChanged];

11.UIDatePicker使用教程二。
11.1日期范围
你可以通过设置mininumDate 和 maxinumDate 属性,来指定使用的日期范围。如果用户试图滚动到超出这一范围的日期,表盘会回滚到最近的有效日期。两个方法都需要NSDate 对象作参数:

代码如下:

NSDate* minDate = [[NSDate alloc]initWithString:@"1900-01-01 00:00:00 -0500"];

NSDate* maxDate = [[NSDate alloc]initWithString:@"2099-01-01 00:00:00 -0500"];

datePicker.minimumDate = minDate;

datePicker.maximumDate = maxDate;

11.2 如果两个日期范围属性中任何一个未被设置,则默认行为将会允许用户选择过去或未来的任意日期。这在某些情况下很有用处,比如,当选择生日时,可以是过去的任意日期,但终止与当前日期。如果你希望设置默认显示的日期,可以使用date属性:

代码如下:

datePicker.date = minDate;

11.3 此外,你还可以用 setDate 方法。如果选择了使用动画,则表盘会滚动到你指定的日期:

代码如下:

[ datePicker setDate:maxDate animated:YES];

时间: 2015-11-07

IOS中使用UIWebView 加载网页、文件、 html的方法

UIWebView 是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf word doc 等等文件 生成webview 有两种方法: 1.通过storyboard 拖拽 2.通过alloc init 来初始化 创建webview,下列文本中 _webView.dataDetectorTypes = UIDataDetectorTypeAll; 是识别webview中的类型,例如 当webview中有电话号码,点击号码就能直接打电话 - (UIWebView *)webView

iOS开发中使用UIScrollView实现图片轮播和点击加载

UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播 二.实现代码 storyboard中布局 代码: 复制代码 代码如下: #import "YYViewController.h" @interface YYViewController () <UIScrollViewDelegate> @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; /**  *  页码  */ @pro

iOS应用开发中UIScrollView滚动视图的基本用法总结

在项目开发时遇到一个问题,我在UIViewController上面直接创建了一个UIScrollerView,把UIScrollerView作为一个子视图添加到了UIViewController, 又再UIScrollerView中添加了一个UISlider的组件,在手势滑动的过程中,很难滑动到UISlider这个控件,经常是滑动的时候UIScrollerView进行了滚动, 而UISlider这个控件没有滑动,让人很抓狂. 上网具体去了解了一下UIScrollerView的详解,终于彻底明白了

iOS开发中使用UILabel设置字体的相关技巧小结

一.初始化 复制代码 代码如下: UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 40, 120, 44)];      [self.view addSubview:myLabel]; 二.设置文字 1.设置默认文本 复制代码 代码如下: NSString *text = @"标签文本"; myLabel.text = text; 效果: 2.设置标签文本(此属性是iOS6.0之后才出现,如若不是必要,不

IOS改变UISearchBar中搜索框的高度

一.系统的searchBar 1.UISearchBar的中子控件及其布局 UIView(直接子控件) frame 等于 searchBar的bounds,view的子控件及其布局 UISearchBarBackground(间接子控件) frame 等于searchBar的bounds UISearchBarTextField(间接子控件) frame.origin等于(8.0, 6.0),即不等于searchBar的bounds 2.改变searchBar的frame只会影响其中搜索框的宽度

IOS开发代码分享之设置UISearchBar的背景颜色

今天用到UISearchBar,之前网上提供的方法已经不能有效的去除掉它的背景色了,修改背景色方法如下: mySearchBar.backgroundColor = RGBACOLOR(249,249,249,1);     mySearchBar.backgroundImage = [self imageWithColor:[UIColor clearColor] size:mySearchBar.bounds.size];   //取消searchbar背景色 - (UIImage *)im

IOS中UIWebView加载Loading的实现方法

第一种方法:使用UIView and UIActivityIndicatorView 复制代码 代码如下: //创建UIWebView WebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 44, 320, 400)]; [WebView setUserInteractionEnabled:NO]; [WebView setBackgroundColor:[UIColor clearColor]]; [WebView setDelega

iOS开发中UITabBarController的使用示例

首先我们看一下它的view层级图: 复制代码 代码如下: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  {      self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];      // Override point fo

iOS开发中UISwitch按钮的使用方法简介

一.第一种创建UISwitch控件的方法,在代码中动态创建. 1.打开Xcode  4.3.2, 新建项目Switch,选择Single View Application. 2.打开ViewController.m文件在viewDidLoad方法里添加代码: 复制代码 代码如下: - (void)viewDidLoad {     [super viewDidLoad];     UISwitch *switchButton = [[UISwitch alloc] initWithFrame:C

IOS 实现一个死锁导致 UI 假死的例子

IOS 实现一个死锁导致 UI 假死的例子 现象 当 APP 启动一段时间后(约半小时左右),经常会发现 App 界面出现"冻死"的现象.同时后台输出: [CocoaGoPush]WorkThreadProc end 这时 App 呈现"假死"状态,点击屏幕任何地方没有反应,iPhone 除了开屏关屏无任何响应(包括按 Home 键),当然也无法解锁(但可以重启).如果用 Xcode 终止应用程序,则 iPhone 又恢复正常. 注:App 使用了 CocoaGoP

jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题

今天做一个需求遇到了这么个情况,就是用户个人中心有个功能,点击按钮,可以刷新用户当前的积分,这个肯定需要使用到ajax的同步请求了,当时喀喀喀三下五除二写玩了,大概代码如下: /** * 异步当前用户积分 by zgw 20161216 * @return {[type]} [description] */ function flushIntegralSum() { //点击按钮刷新前修改按钮的文案,已经去掉点击事情,防止多次点击 $("#flushbutton").replaceWi

Spring Boot假死诊断实战记录

这两天遇到一个服务假死的问题,具体现象就是服务不再接收任何请求,客户端会抛出Broken Pipe. 检查系统状态 执行top,发现CPU和内存占用都不高,但是通过命令 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 发现有大量的CLOSE_WAIT端口占用,继续调用该服务的api,等待超时之后发现CLOSE_WAIT的数量也没有上升,也就是说服务几乎完全僵死. 检查JVM情况 怀疑可能是线程有死锁,决定先

C# WinForm程序处理后台繁忙导致前台控件假死现象解决方法

特别是针对循环或timer处理中需要在窗体控件显示数据时,因后台处理过度繁忙而出现没刷新或者假死现象时,可以使用 复制代码 代码如下: Application.DoEvents(); Application.DoEvents()的作用 复制代码 代码如下: private void button1_Click(object sender, EventArgs e)         {             for (int i = 0; i < 10000; i++)            

简单几招让你的电脑不再假死机

死机,相信是很多朋友习以为常的事.一发现死机,我们通常都会直接热启动或按"Reset",但孰不知,有时电脑并未真正死机,只不过是处于一种假死的状态.按下数字键区的"Num Lock"键,如果指示灯有反应,则说明是假死机.那我们该如何处理真.假死机呢? 一.修改注册表,远离假死机困扰 很多假死机是由于运行的程序没有响应造成的.比如你在同一时间打开或启动的程序过多,导致系统资源消耗严重,就会出现程序停止响应的情况,这时我们可以按下"Ctrl+Alt+Del&q

wxpython中利用线程防止假死的实现方法

前段时间我编写了一个工业控制的软件,在使用中一直存在一个问题,就是当软件检索设备时,因为这个功能执行的时间比较长,导致GUI界面假死,让用户分辨不清楚软件到底仍在执行,还是真的挂掉了.(虽然我设计了同步log显示,但是这个也同样假死了) 程序截图如下: 代码解析如下: # -*- coding: utf-8 -*- import time import wx from threading import Thread from wx.lib.pubsub import Publisher time

解决js ajax同步请求造成浏览器假死的问题

一.问题的起因 今天做一个需求遇到了这么个情况,就是用户个人中心有个功能,点击按钮,可以刷新用户当前的积分,这个肯定需要使用到ajax的同步请求了,当时喀喀喀三下五除二写玩了,大概代码如下: /** * 异步当前用户积分 by zgw 20161216 * @return {[type]} [description] */ function flushIntegralSum() { //点击按钮刷新前修改按钮的文案,已经去掉点击事情,防止多次点击 $("#flushbutton").r

PHP使用curl_multi_select解决curl_multi网页假死问题的方法

本文实例讲述了PHP使用curl_multi_select解决curl_multi网页假死问题的方法.分享给大家供大家参考,具体如下: curl_multi可以批处理事务,给网页编程带来很大的方便.不过在使用curl_multi的过程中,我们会遇到一个比较头疼的问题,那就是当并发处理的事务数量过多的时候,就会出现CPU过高,网页假死的现象,这是不可以忽视的. 今天,通过查询相关资料和测试,终于找到了一个解决问题的方法. 正常情况下,我们是这样使用curl_multi的. 实例代码: $conno

IOS 仿时光网选票UI实例代码

一.项目简介 该项目利用UIScrollView的各种滚动事件的监听,仿造时光网选择电影票的UI而开发的一个自定义View.使用简单,可扩展性很强.具备点击每个Item进行选票功能,选票居中功能,滑动时自动选择距离中间最近的View处于选中状态,而且对于滑动时松开手的时候是否有初始速度进行了区分处理.案例演示如下:<br/> 仿时光网选票UI 二.项目讲解 1.初始化UIScrollView中每个Item的View,把每个View放到_viewArray数组中,方便接下来的定位和管理.每一个V

IIS应用程序池自动停止 关闭 假死 处理集锦

1:没有打SP1补丁的时候会出现这个IIS6.0假死问题,但现在微软都在自动更新里面出补丁了,一般你打好最新补丁后是不会出现此问题了 2:你限制了应用池 的资源过小 3:你限制了内存使用 4:就是服务器自身内存太小 5:就是ACCESS数据库太大或查询太多 6:不同网站用不同应用池 7:设置回收时间,很多人以为设置回收池越短越好,其实是错误的 8:windows 2003系统iis6访问本机的站点时提示"Service Unavailable": 查看iis的应用程序池,状况提示为:未