美文网首页
利用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