• [转]NSTimer和CADisplayLink的基本用法


    简要区别:
    NSTimer初始化器接受调用方法逻辑之间的间隔作为它的其中一个参数,预设一秒执行30次
    CADisplayLink默认每秒运行60次,通过它的frameInterval属性改变每秒运行帧数,如设置为2,意味CADisplayLink每隔一帧运行一次,有效的逻辑每秒运行30次。
    此外,NSTimer接受另一个参数是否重复,而CADisplayLink默认为重复,直到它失效。
    还有一个区别在于,NSTimer一旦初始化它就开始运行,而CADisplayLink需要将显示链接添加到一个运行循环中,即用于处理系统事件的一个Cocoa Touch结构。
    NSTimer 我们通常会用在背景计算,更新一些数值资料,而如果牵涉到画面的更新,动画过程的演变,我们通常会用CADisplayLink。

    NSTimer

    @interface ViewController : UIViewController
    {
     
        NSTimer *theTimer; //声明
    }
     
    //使用
     
    float theInterval = 1.0 / 30.0f;  //每秒调用30次
     
    theTimer = [NSTimer scheduledTimerWithTimeInterval:theInterval target:self selector:@selector(MyTask) userInfo:nil repeats:YES];
     
    //停用
     
    [theTimer invalidate];
    theTimer = nil;
    

      

     

    CADisplayLink,需要加入QuartzCore.framework及#import

    /*CADisplayLink 默认每秒运行60次,将它的frameInterval属性设置为2,意味CADisplayLink每隔一帧运行一次,有效的使游戏逻辑每秒运行30次*/

    f(theTimer == nil)
     
        {
     
            theTimer = [CADisplayLink displayLinkWithTarget:self selector:@selector(MyTask)];
     
            theTimer.frameInterval = 2;
     
            [theTimer addToRunLoop: [NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
     
        }
     
    //停用
     
    [theTimer invalidate];
     
    theTimer = nil;

     
  • 相关阅读:
    随机生成一份试卷,试卷的种类分为单选、多选、判断三种题型。nodejs6.0 mysql
    git 常用命令
    ECMAScript 继承机制实现
    javascript正则表达式
    利用javascript实现二维数组的筛选
    iframe引入百度地图显示企业位置
    前端开发APP,从HBuilder开始~
    js闭包理解
    Python多线程threading与多线程中join()的用法
    Python中的装饰器
  • 原文地址:https://www.cnblogs.com/developer-qin/p/4914712.html
Copyright © 2020-2023  润新知