//1.本質(zhì)上就是創(chuàng)建一個(gè)時(shí)鐘瞧捌,以默認(rèn)的模式添加到運(yùn)行循環(huán)中 [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector() userInfo:nil repeats:YES]; //2.等同于1 [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode]; //3.以NSRunLoopCommonModes的模式添加到運(yùn)行循環(huán)中 [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
運(yùn)行模式有兩種:NSDefaultRunLoopMode 和 NSRunLoopCommonModes(滾動(dòng))
NSDefaultRunLoopMode
一旦發(fā)現(xiàn)有滾動(dòng)事件谜叹,默認(rèn)模式暫時(shí)不監(jiān)聽(tīng),但是會(huì)累積骚亿,也就是在下一次可監(jiān)聽(tīng)的時(shí)候會(huì)把之前沒(méi)執(zhí)行的一并執(zhí)行惯疙。
eg.圖片輪播器定時(shí)切換的時(shí)候欺旧,拖住某張圖片后放開(kāi)昔汉,會(huì)一下子切換n張
NSRunLoopCommonModes
即使有滑動(dòng)也監(jiān)聽(tīng)
NSTimer準(zhǔn)確嗎?如果不準(zhǔn)確嘁灯,怎么辦泻蚊?
不準(zhǔn)確。通常用來(lái)有一定時(shí)間跨度的周期性實(shí)際的處理丑婿。
CADisplayLink (屏幕刷新一次就執(zhí)行一次 60Hz)