iOS中实现简单易懂秒杀倒计时/倒计时代码
发布时间 - 2026-01-10 23:00:34 点击率:次示例代码简单易懂:
#import <uikit uikit.h=""> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UILabel *dayLabel; @property (weak, nonatomic) IBOutlet UILabel *hourLabel; @property (weak, nonatomic) IBOutlet UILabel *minuteLabel; @property (weak, nonatomic) IBOutlet UILabel *secondLabel; @end</uikit>
#import
"ViewController.h"
@interface
ViewController ()
{
dispatch_source_t
_timer;
}
@end
@implementation
ViewController
/**
*
获取当天的年月日的字符串
*
这里测试用
*
@return 格式为年-月-日
*/
-(NSString
*)getyyyymmdd{
NSDate
*now = [NSDate date];
NSDateFormatter
*formatDay = [[NSDateFormatter alloc] init];
formatDay.dateFormat
= @"yyyy-MM-dd";
NSString
*dayStr = [formatDay stringFromDate:now];
return
dayStr;
}
-
(void)viewDidLoad
{
[super
viewDidLoad];
NSDateFormatter
*dateFormatter=[[NSDateFormatter alloc] init];
[dateFormatter
setDateFormat:@"yyyy-MM-dd"];
NSDate
*endDate = [dateFormatter dateFromString:[self getyyyymmdd]];
NSDate
*endDate_tomorrow = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:([endDate timeIntervalSinceReferenceDate] +
24*3600)];
NSDate
*startDate = [NSDate date];
NSTimeInterval
timeInterval =[endDate_tomorrow timeIntervalSinceDate:startDate];
if
(_timer==nil) {
__block
int
timeout = timeInterval; //倒计时时间
if
(timeout!=0)
{
dispatch_queue_t
queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
_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);
_timer
= nil;
dispatch_async(dispatch_get_main_queue(),
^{
self.dayLabel.text
= @"";
self.hourLabel.text
= @"00";
self.minuteLabel.text
= @"00";
self.secondLabel.text
= @"00";
});
}else{
int
days = (int)(timeout/(3600*24));
if
(days==0)
{
self.dayLabel.text
= @"";
}
int
hours = (int)((timeout-days*24*3600)/3600);
int
minute = (int)(timeout-days*24*3600-hours*3600)/60;
int
second = timeout-days*24*3600-hours*3600-minute*60;
dispatch_async(dispatch_get_main_queue(),
^{
if
(days==0)
{
self.dayLabel.text
= @"0天";
}else{
self.dayLabel.text
= [NSString stringWithFormat:@"%d天",days];
}
if
(hours<10)
{
self.hourLabel.text
= [NSString stringWithFormat:@"0%d",hours];
}else{
self.hourLabel.text
= [NSString stringWithFormat:@"%d",hours];
}
if
(minute<10)
{
self.minuteLabel.text
= [NSString stringWithFormat:@"0%d",minute];
}else{
self.minuteLabel.text
= [NSString stringWithFormat:@"%d",minute];
}
if
(second<10)
{
self.secondLabel.text
= [NSString stringWithFormat:@"0%d",second];
}else{
self.secondLabel.text
= [NSString stringWithFormat:@"%d",second];
}
});
timeout--;
}
});
dispatch_resume(_timer);
}
}
}
<span
style="font-family:
Arial, Verdana, sans-serif;">效果:</span>
以上所述是小编给大家介绍的iOS中实现简单易懂秒杀倒计时/倒计时代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# ios秒杀倒计时代码
# ios
# 秒杀倒计时
# IOS开发代码分享之用nstimer实现倒计时功能
# IOS实现验证码倒计时功能(一)
# IOS关于大型网站抢购、距活动结束
# 剩余时间倒计时的实现代码
# ios 实现倒计时的两种方式
# iOS中让多个cell上都出现倒计时的分析与实现
# iOS实现毫秒倒计时的方法详解
# iOS获取短信验证码倒计时的两种实现方法
# iOS启动页倒计时跳过按钮功能
# Swift实现iOS应用中短信验证码倒计时功能的实例分享
# iOS实现秒杀活动倒计时
# 倒计时
# 小编
# 在此
# 给大家
# 所述
# 给我留言
# 感谢大家
# 格式为
# 疑问请
# 有任何
# 当天
# 秒杀
# NSDate
# getyyyymmdd
# date
# NSDateFormatter
# _timer
# dispatch_source_t
# implementation
# NSString
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速搭建虚拟主机网站?新手必看指南
如何在建站之星网店版论坛获取技术支持?
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
如何快速查询网址的建站时间与历史轨迹?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
java中使用zxing批量生成二维码立牌
如何在新浪SAE免费搭建个人博客?
EditPlus中的正则表达式实战(6)
怎么用AI帮你为初创公司进行市场定位分析?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
浅析上传头像示例及其注意事项
JavaScript模板引擎Template.js使用详解
Laravel如何记录自定义日志?(Log频道配置)
Laravel如何处理CORS跨域请求?(配置示例)
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
如何用花生壳三步快速搭建专属网站?
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Android使用GridView实现日历的简单功能
桂林网站制作公司有哪些,桂林马拉松怎么报名?
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
如何在阿里云服务器自主搭建网站?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Java垃圾回收器的方法和原理总结
如何快速选择适合个人网站的云服务器配置?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
如何登录建站主机?访问步骤全解析
如何在橙子建站上传落地页?操作指南详解
香港服务器租用费用高吗?如何避免常见误区?
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
如何在Windows环境下新建FTP站点并设置权限?
如何确认建站备案号应放置的具体位置?
油猴 教程,油猴搜脚本为什么会网页无法显示?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
Laravel如何实现事件和监听器?(Event & Listener实战)
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
昵图网官网入口 昵图网素材平台官方入口
如何快速完成中国万网建站详细流程?
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
如何挑选优质建站一级代理提升网站排名?
长沙做网站要多少钱,长沙国安网络怎么样?
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
LinuxCD持续部署教程_自动发布与回滚机制
教学论文网站制作软件有哪些,写论文用什么软件
?
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
JavaScript中的标签模板是什么_它如何扩展字符串功能
百度浏览器如何管理插件 百度浏览器插件管理方法

