• 关于CCSprite不能及时显示的问题


    今天在利用AFNetworking做网络请求时总是能看到添加的CCSprite精灵总是延迟一会才显示,google了半天没有找到答案,

    考虑到CCSprite要被渲染才能显示,于是直接在场景中的CCLayer的draw函数上添加了一个断点,查看什么时候CCLayer才被渲染,

    发现每次执行下面语句时CCLayer的draw函数就不会执行,倒是CCSprite不能渲染,故执行下面函数时阻塞了draw函数的执行

    NSTime *_time;
    //开始轮询
    -(void)startUpdateQuery{
        _timer = [NSTimer scheduledTimerWithTimeInterval:_queryTimeInterval target:self selector:@selector(updateQueryPhase:) userInfo:nil repeats:YES];
        [_timer fire];
    }
    
    //停止轮询
    -(void)stopUpdateQuery{
        [_timer invalidate];
    }
    
    //轮询过程
    -(void)updateQueryPhase{
        ........
    }

    经过修改后换成下面语句

    //开始轮询
    -(void)startUpdateQuery{
        [self performSelector:@selector(updateQueryPhase) withObject:nil afterDelay:_queryTimeInterval]);
    }
    
    
    //停止轮询
    -(void)stopUpdateQuery{
        [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(updateQueryPhase) object:nil]);
    }
    
    //轮询过程
    -(void)updateQueryPhase{
        .......
    }

    此时可以正常显示精灵了

  • 相关阅读:
    枚举
    IOS uitableview代理方法
    IOS图片拉伸模式
    IOS单例的设计模式
    圆角属性
    IOS 随机数
    IOS正则表达式
    添加 分类 自动适配图片
    用grep查找文件内容
    Openscada远程配置
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3469433.html
Copyright © 2020-2023  润新知