让SVProgressHUD提示框自动消失

SVProgressHUD是一个第三方提示器框架。现在想实现提示框2秒后自动消失的效果,便有了以下尝试:

// 可以自动消失的三种提示框
[SVProgressHUD showInfoWithStatus:@"数据加载完毕!"];
[SVProgressHUD showSuccessWithStatus:@"成功加载到4条新数据!"];
[SVProgressHUD showErrorWithStatus:@"网络错误,请稍等!"];
// 设置四周阴影
[SVProgressHUD showWithMaskType:SVProgressHUDMaskTypeBlack];

使用上面的方法,它要过四五秒才消失。要实现2秒后自动消失的效果,有两种方法:
第一种(SVProgressHUD版本必须2.0.4以后):

	[SVProgressHUD showSuccessWithStatus:@"Done!"];
    [SVProgressHUD dismissWithDelay:2.0f];

第二种:

// 延迟2秒后消失
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
	[SVProgressHUD dismiss];
});

在第二种方法中用到的dispatch_after是一种GCD,关于GCD,详见唐巧博客

    Grand Central Dispatch (GCD) 是 Apple 开发的一个多核编程的解决方法。该方法在 Mac OS X 10.6 雪豹中首次推出,并随后被引入到了 iOS4.0 中。GCD 是一个替代诸如 NSThread, NSOperationQueue, NSInvocationOperation 等技术的很高效和强大的技术。
GCD 和 block 的配合使用,可以方便地进行多线程编程。

dispatch_after

dispatch_after
功能:延迟一段时间把一项任务提交到队列中执行,返回之后就不能取消
	 常用来在在主队列上延迟执行一项任务
函数原型:func dispatch_after(dispatch_time_t when,
		                    dispatch_queue_t queue,
	                        dispatch_block_t block);
参数:when   过了多久执行的时间间隔  
     queue 提交到的队列  
     block   执行的任务 
  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值