美文网首页
利用runloop来优化滚动界面的卡顿

利用runloop来优化滚动界面的卡顿

作者: 桂小K | 来源:发表于2017-07-21 15:26 被阅读0次

    创建 RunLoop 注意这里创建的runloop不是NSRunLoop 

    然后再 添加runloop的观察着

    - (void)addRunLoop{

    //获取当前的runloop

    CFRunLoopRefcurrenRunloop=CFRunLoopGetCurrent();

    CFRunLoopObserverContextcontext = {

    0,

    (__bridgevoid*)(self),

    &CFRetain,

    &CFRelease,

    NULL

    };

    //设置观察者

    CFRunLoopObserverRefobseve =CFRunLoopObserverCreate(nil,kCFRunLoopBeforeWaiting,YES,0, &callback, &context);

    //添加观察者

    //kCFRunLoopDefaultMode;

    //kCFRunLoopCommonModes;

    //两种模式可选择

    CFRunLoopAddObserver(currenRunloop, obseve,kCFRunLoopCommonModes);

    }

    添加观察者的回调函数 这里的回调函数是C语言函数

    voidcallback(CFRunLoopObserverRefobserver,CFRunLoopActivityactivity,void*info){

    ViewController*VC = (__bridgeViewController*)(info);

    if(VC.tasks.count==0) {

    return;

    }

    myBlockblock = VC.tasks[0];

    block();

    [VC.tasksremoveObjectAtIndex:0];

    }

    相关文章

      网友评论

          本文标题:利用runloop来优化滚动界面的卡顿

          本文链接:https://www.haomeiwen.com/subject/kggvhxtx.html