- 浏览: 904260 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (466)
- iPhone, iOS , Objective-c (155)
- 数据库 (20)
- 设计模式 (5)
- 第三方包管理,cocoapod (2)
- 版本管理, SVN, Subversion, Git (1)
- Google, Android, Java (14)
- Wordpress (1)
- 职业素养 (3)
- 版本管理,git (3)
- 前端小技巧 (2)
- flash (1)
- javascript (5)
- Ruby (0)
- 编程语言 (1)
- 网络常识 (1)
- 找到生活好感觉 (5)
- 产品经理 (1)
- markdown (1)
- 云服务器 (1)
- iPhone (116)
- iOS (116)
- Objective-c (116)
- 学习技巧 (2)
- Google (5)
- Android (6)
- Java (21)
- python (1)
- sqlite (3)
- node.js (2)
- mongodb (2)
- 学习技巧,阅读 (2)
- 软件测试 (3)
- 架构设计 (2)
- 设计 (1)
- Spring framework (3)
- junit (1)
- Linux (2)
- 软件 (1)
- Struts2 (1)
- 版本管理 (3)
- SVN (3)
- Subversion (3)
- Git (3)
- mysql (5)
- quartz (1)
- 无关技术 (1)
- 前端 (1)
- Redis (1)
- 产品管理 (0)
- 计算机常识 (1)
- 计算机科学 (0)
- swift (1)
- 服务器 (2)
- 搜索 (1)
- Scala (1)
- J2EE (1)
- maven (1)
- 前端css (1)
- 英语 (1)
- 消息队列 (1)
- kafka (0)
- apache kafka (4)
- netbeans (1)
- IDE (2)
- 歌词 (1)
- 过滤器实现 (1)
- linux vim vi (1)
- jmeter (1)
- springcloud (1)
最新评论
-
hujingnemo:
不知道为什么打不开
CHM如何改编字体大小 -
weiboyuan:
求答案 weiboyuanios@163.com
iOS软件工程师面试题(高级) -
xueji5368:
这个现在已经广泛使用了嘛!
RoboGuice入门 -
Yao__Shun__Yu:
...
CHM如何改编字体大小 -
353144886:
非常之详细 美女求认识
sqlite数据类型 datetime处理
__block int timeout = 59; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue); dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行 dispatch_source_set_event_handler(_timer, ^{ if(timeout<=0){ //倒计时结束,关闭 dispatch_source_cancel(_timer); dispatch_async(dispatch_get_main_queue(), ^{ //设置界面的按钮显示 根据自己需求设置 [fetchVerifyCodeButton_ setEnabled:YES]; [fetchVerifyCodeButton_ setTitle:@"获取验证码" forState:UIControlStateNormal]; }); }else{ int seconds = timeout % 60; NSString *strTime = [NSString stringWithFormat:@"%2d秒重新获取", seconds]; dispatch_async(dispatch_get_main_queue(), ^{ //设置界面的按钮显示 根据自己需求设置 [fetchVerifyCodeButton_ setTitle:strTime forState:UIControlStateDisabled]; }); timeout--; } }); dispatch_resume(_timer);
普通写法
secondsCountDown = 60;//60秒倒计时 countDownTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeFireMethod) userInfo:nil repeats:YES]; -(void)timeFireMethod{ secondsCountDown--; if(secondsCountDown==0){ [countDownTimer invalidate]; } }
发表评论
-
UIImage变为NSData并进行压缩
2014-05-19 20:23 1928//sdk中提供了方法可以直接调用 UIImage *im ... -
update cocapods
2014-05-17 22:27 800早上更新cocoapod依赖库,发现更新到32.1版本,早先的 ... -
iOS发送短信息代码实例
2014-05-16 18:15 2686#import <MessageUI/Message ... -
DISPATCH TIMER
2014-05-14 16:12 729/* __block void (^callback) ... -
UITextField左边显示图片
2014-05-13 18:08 1170The overlay view displayed on t ... -
iOS调用系统打电话,发短信功能
2014-05-11 15:48 2084先介绍一种最简单的方法: 调用打电话功能 [[UIAppl ... -
iOS面试题
2014-05-09 16:10 10771.写一下UIButton与UITableView的层级结构 ... -
socket二进制报文
2014-05-09 15:18 1300里面有帧头 字符串UTF-8 中间用0隔开 又一个字符串 ... -
将网站添加到桌面的方法
2014-05-08 14:25 1661<link href="http://www. ... -
iPhone通讯录联系人操作大全
2014-05-07 10:29 14591.需要引入AddressBook.framework框架 2 ... -
sqlite获取最新插入的rowid
2014-05-07 09:59 1523除了 last_insert_rowid select max ... -
号码归属地查询,拨打电话
2014-05-06 15:07 845在程序内调用拨打电话的方法,[[UIApplication s ... -
iOS时间合并
2014-04-28 17:55 1093合并同一时间的课程,同一时间可能有多个课程,比如13:30-1 ... -
vCard通讯录格式说明
2014-04-28 16:47 2556原帖:http://freesoftman.iteye.com ... -
UISearchBar背景色全套解决方案
2014-04-25 09:36 7443os系统升级到7.1后,原来在7.0下显示正常的UISearc ... -
升级XCode5.1.1遇到的奇葩问题NSString,NSObjectRuntime.h报错,Foundation找不到
2014-04-24 11:19 896升级XCode5.1.1遇到的奇葩问题NSString,NSO ... -
将NSString转为NSArray
2014-04-22 16:52 6269// Your JSON data: NSString *c ... -
另外一种NSData转为NSString的方法
2014-04-22 15:40 1211If the data is not null-termina ... -
HTTP,Socket,WebSocket异同
2014-04-18 16:54 1832参考文章: http://abbshr.g ... -
push隐藏UINavigtaionBar和UITabbar
2014-04-17 15:20 1092[self.navigationController setN ...
相关推荐
GCD timer是基于GCD的一种计时器实现,相较于NSTimer,它提供了一种更高效、更易于管理的计时器解决方案。本篇文章将深入探讨iOS GCD timer的相关知识点,并介绍如何封装和使用。 1. **GCD基础** - GCD是Apple提供...
以下是一个基本的GCD倒计时实现步骤: 1. **创建串行队列**: 首先,我们需要创建一个串行队列。这可以通过`dispatch_queue_create()`函数完成,传入队列标识符(可选)和队列类型(这里使用默认的串行队列类型` ...
综上所述,"ios-验证码倒计时.zip"中的代码可能实现了这样一个GCD倒计时器,提供了一种高效且精确的倒计时解决方案。开发者可以学习这个示例,理解并掌握GCD在倒计时场景中的应用,以提升iOS应用的用户体验。
在iOS开发中,倒计时(Countdown Timer)是一种常见的功能,它被广泛应用于各种应用场景,比如考试倒计时、烹饪计时、闹钟等。本项目“到计时器”是一个用户可以自定义时间的倒计时工具,其核心在于能够接收用户输入...
HQCountDown.framework应该已经做了优化,但为了确保流畅性,可以在适当的地方使用GCD(Grand Central Dispatch)来控制倒计时的更新频率,避免过于频繁地刷新UI。 9. **错误处理与测试**: 在实际应用中,要考虑...
在倒计时场景中,GCD可以帮助避免NSTimer因主线程阻塞而出现的问题,确保倒计时的准确无误。 3. **Block/Closure**:资源中的"一句代码"很可能是指使用Block或Closure来设置倒计时的开始和结束回调。Block是iOS中的...
// 使用GCD创建倒计时 let timer = DispatchSource.makeTimerSource(queue: .main) timer.schedule(deadline: .now() + 1, repeating: 1, leeway: 0) timer.setEventHandler { remainingTime -= 1 // 更新UI } ...
在"ios-tableview cell 倒计时.zip"这个压缩包中,包含了一个名为"CountDownTimerForTableView-master"的项目,这个项目很可能是演示如何在UITableView的Cell中实现倒计时功能。倒计时在很多应用中都有广泛的应用,...
在iOS开发中,倒计时功能常常用于限时活动、抢购场景等,为用户提供一种时间紧迫感。"ios-时分秒倒计时.zip"这个压缩包文件很可能包含了一个实现这种功能的示例代码或者库。下面将详细介绍如何在iOS应用中实现一个...
倒计时功能则通常结合NSTimer或GCD(Grand Central Dispatch)来实现,以便在指定时间后触发相应的事件。 描述中提到“结合进度条封装的一款倒计时控件,可对计时开始,计时中及计时完成后做出相应事件的处理”。这...
这里可能使用GCD(Grand Central Dispatch)来实现定时任务,确保倒计时的线程安全和准确性。同时,`TimeLimitedView`还需要监听并响应UI界面的刷新,确保在屏幕旋转或其他界面变化时,倒计时状态能够正确恢复。 ...
在倒计时功能中,我们可以利用GCD的`dispatch_source_set_timer`创建一个定时源,每隔一定时间(如1秒)触发回调,更新按钮状态。 2. **KVO (Key-Value Observing)** KVO是Objective-C中的观察者模式实现,允许...
今天我们将聚焦于一个特定的UI控件——"swift-好用的iOS倒计时按钮",它在处理诸如注册、验证码获取等场景时特别有用。在这些场景中,用户点击按钮后,按钮会进入倒计时状态,防止用户频繁发送请求。 倒计时按钮的...
在iOS开发中,实现热门商品抢购倒计时是一项常见的需求,这有助于营造紧张的购物氛围,刺激消费者的购买欲望。本教程将详细讲解如何在iOS应用中创建一个抢购倒计时功能,主要涉及以下几个核心知识点: 1. **日期与...
4. **倒计时结束**: 倒计时结束后,按钮的文字会恢复为原始状态,同时可点击状态也会恢复,允许用户再次触发倒计时。 在实际项目中,DFCountDownButton的使用非常简单。只需要在代码中导入库,然后像创建普通...
开发者可能使用`NSTimer`或者GCD(Grand Central Dispatch)来定期更新UI以显示最新的倒计时状态。 3. **自定义视图**: 为了实现翻页效果,开发者可能创建了一个自定义的UIView子类,该子类重写了`drawRect:`方法来...
倒计时的实现通常会涉及到定时器(NSTimer或者GCD的DispatchSourceTimer)。`JKCountDownButton`内部会创建一个定时器,在每次触发时更新按钮上的文字,展示剩余时间。为了确保用户体验的流畅性,倒计时更新应尽可能...
在iOS开发中,倒计时功能是一个常见的需求,特别是在创建计时器或者实时更新界面的场景下。然而,当涉及到高精度的倒计时,比如毫秒级,并且结合UITableView等可滚动视图时,可能会遇到性能问题或意外的崩溃。这个...
4. **使用GCD或RunLoop**:利用GCD的`dispatch_once`或者RunLoop的`addTimer`方法确保倒计时只执行一次。 现在,我们来看一下具体实现步骤: 1. **创建倒计时逻辑**:定义一个方法,例如`startCountdown`,接收倒...