项目学习 知识点备忘1

本文介绍了在iOS开发中如何让SVProgressHUD提示框自动消失的实现方式,通过dispatch_after延迟2秒调用dismiss方法。同时详细讲解了如何正确创建并使用dispatch_time_t,包括dispatch_time函数的参数解析,以及延时单位转换,如纳秒(NSEC)、微妙(USEC)和秒(SEC)之间的关系。示例代码展示了延时1秒的不同写法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、让SVProgressHUD提示框自动消失

// 延迟2秒后消失

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [SVProgressHUD dismiss];});


2、正确创建dispatch_time_t

用dispatch_after的时候就会用到dispatch_time_t变量,但是如何创建合适的时间呢?答案就是用dispatch_time函数,其原型如下:

1
dispatch_time_t dispatch_time ( dispatch_time_t when, int64_t delta );

第一个参数一般是DISPATCH_TIME_NOW,表示从现在开始。

那么第二个参数就是真正的延时的具体时间。

这里要特别注意的是,delta参数是“纳秒!”,就是说,延时1秒的话,delta应该是“1000000000”=。=,太长了,所以理所当然系统提供了常量,如下:

1
2
3
#define NSEC_PER_SEC 1000000000ull
#define USEC_PER_SEC 1000000ull
#define NSEC_PER_USEC 1000ull

关键词解释:

  • NSEC:纳秒。

  • USEC:微妙。

  • SEC:秒

  • PER:每

所以:

  1. NSEC_PER_SEC,每秒有多少纳秒。

  2. USEC_PER_SEC,每秒有多少毫秒。(注意是指在纳秒的基础上)

  3. NSEC_PER_USEC,每毫秒有多少纳秒。

所以,延时1秒可以写成如下几种:

dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC);

dispatch_time(DISPATCH_TIME_NOW, 1000 * USEC_PER_SEC);

dispatch_time(DISPATCH_TIME_NOW, USEC_PER_SEC * NSEC_PER_USEC);

最后一个“USEC_PER_SEC * NSEC_PER_USEC”,翻译过来就是“每秒的毫秒数乘以每毫秒的纳秒数”,也就是“每秒的纳秒数”,所以,延时500毫秒之类的,也就不难了吧~


3、 iOS:tableView的类型改为Grouped组头出现默认的高度

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    return 0.1;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值