1.最直接的方法performSelector:withObject:afterDelay:
这种方法的缺点:每次要为延时写一个方法
2.使用类别,用BOLCK执行
[代码]c#/cpp/oc代码:
01
|
@implementation NSObject (PerformBlockAfterDelay)
|
03
|
- ( void )performBlock:( void (^)( void ))block
|
04
|
afterDelay:(NSTimeInterval)delay
|
06
|
block = [[block copy] autorelease];
|
07
|
[self performSelector:@selector(fireBlockAfterDelay:)
|
12
|
- ( void )fireBlockAfterDelay:( void (^)( void ))block {
|
3.使用GCD
[代码]c#/cpp/oc代码:
1
|
void RunBlockAfterDelay(NSTimeInterval delay, void (^block)( void ))
|
3
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC*delay),
|
4
|
dispatch_get_current_queue(), block);
|
4.可能是不太好的方法,用animation的completion参数
[代码]c#/cpp/oc代码:
1
|
[UIView animateWithDuration:0.0 delay:5.0 options:UIViewAnimationOptionAllowUserInteraction animations:^{
|
2
|
} completion:^(BOOL finished) {
|
5.使用NSOperationQueue,在应用程序的下一个主循环执行:
[代码]c#/cpp/oc代码:
1
|
[[NSOperationQueue mainQueue] addOperationWithBlock:aBlock];
|
这个和调用performSelector: with afterDelay of 0.0f等价
IOS开发之延时执行的几种方法相关推荐
- 【Android】之【延时执行的几种方法】
在Android日常开发中我们经常会有延时执行某个操作的需求,例如我们启动应用的时候,开始呈现一个引导页面,过了两三秒后,自动跳转到主界面:又如为了控制时序,需要延时执行等等. 下面整理下实现延时执行 ...
- Unity——延时执行的几种方法
1.什么是延迟函数 延时执行的函数,可以自己设定延时要执行的函数和具体延时的时间,是Monobehaviour基类中实现好的方法 1.Update定时器 在Update等刷新函数内计时,timer + ...
- IOS开发中发送Email的两种方法
IOS系统框架提供的两种发送Email的方法:openURL 和 MFMailComposeViewController.借助这两个方法,我们可以轻松的在应用里加入如用户反馈这类需要发送邮件的功能. ...
- iOS:延时执行的三种方式
延时执行的三种方式:performSelectorXXX方法.GCD中延时函数.创建定时器 第一种方式:NSObject分类当中的方法,延迟一段时间调用某一个方法 @interface NSObjec ...
- IOS中延时执行的几种方式的比较
本文列举了四种延时执行某函数的方法及其一些区别.假如延时1秒时间执行下面的方法. - (void)delayMethod { NSLog(@"execute"); } 1.perf ...
- 痞子衡嵌入式:在MDK开发环境下将关键函数重定向到RAM中执行的几种方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在MDK开发环境下将关键函数重定向到RAM中执行的几种方法. 这个关键函数重定向到 RAM 中执行系列文章,痞子衡已经写过 <IA ...
- 痞子衡嵌入式:在IAR开发环境下将关键函数重定向到RAM中执行的三种方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下将关键函数重定向到RAM中执行的三种方法. 嵌入式项目里应用程序代码正常是放在 Flash 中执行的,但有时候也需要将 ...
- iOS: JS和Native交互的两种方法,iosjsnative交互
iOS: JS和Native交互的两种方法,iosjsnative交互 背景: UIWebView: iOS 用来展示 web 端内容的控件. 1. 核心方法: - (NSString*)string ...
- Java程序初始化启动自动执行的三种方法
目录 @PostConstruct注解 CommandLineRunner接口 ApplicationRunner 接口 @Order注解设置启动顺序 分享一下自己用过的java程序初始化启动自动执行 ...
最新文章
- 【Zookeeper系列】ZooKeeper管理分布式环境中的数据(转)
- mvc后台字符串转换html,在mvc中,使用summernote编辑器,我想发送数据的内容字符串和HTML到控制器...
- BigDecimal类(精度计算类)的加减乘除
- android 退出app代码_uniapp退出APP应用(IOS+安卓)
- WEB API已成为构建客户端服务的利器?
- 读写分离mysql数据库mariadb_MariaDB数据库读写分离实现(一):mysql-proxy的使用
- Java并发编程的基础-其他的线程复位
- 决策树原理详解及python代码实现
- 牛客网 在线编程 数据流中的中位数
- java if,if...else...的应用
- 2017.10.10 取石子游戏 失败总结
- 华为麒麟1020处理器曝光:性能提升50%,5nm制程!Mate 40有望成为首发机型
- ClassLoader背景知识
- MyEclipse使用经验归纳
- 拓端tecdat|R语言社区检测算法可视化网络图:ggplot2绘制igraph对象分析物种相对丰度
- avaya CM查看VDN指向的技能组
- SOUI控件的自绘和消息处理
- 多种方法教你如何让手机免费上网
- 小白必看!DIY装机,电脑显示器选购
- 开源RapidScada插件开发---短信报警插件
热门文章
- substratum android8,如何在没有root的情况下在Android Oreo上安装Substratum主题
- P4128 [SHOI2006]有色图
- django模板使用
- 嵌入式学习之QT学习---8 QT网络编程之TCP通信
- android 画图一
- RIoTBoard开发板系列笔记(十二)—— gstreamer + vpu实现视频硬件解码播放
- YGG 在 Branch.gg 的免费游戏 Castaways 中购买了 Genesis NFT
- codeforces1292C Xenon‘s Attack on the Gangs
- iOS开发脚踏实地学习day01-02-加法计算器和图片移动缩放旋转
- iOS8定位问题解决方案