JPFPSStatus是一個檢測查看屏幕幀數(shù)的輪子,通過CADisplayLink ?加入RunLoop模式.
可以用來繪制ui動畫效果,也可以用來獲取網(wǎng)絡(luò)狀態(tài).
其核心代碼:
displayLink = [CADisplayLinkdisplayLinkWithTarget:selfselector:@selector(displayLinkTick:)];[displayLink setPaused:YES]; [displayLink addToRunLoop:[NSRunLoopcurrentRunLoop] forMode:NSRunLoopCommonModes];
顯示
- (void)displayLinkTick:(CADisplayLink*)link {
if(lastTime ==0) {
?lastTime = link.timestamp;return;?
?}
?count++;
NSTimeIntervalinterval = link.timestamp - lastTime;
if(interval <1)return;?
?lastTime = link.timestamp;
floatfps = count / interval;
?count =0;
NSString*text = [NSStringstringWithFormat:@"%d FPS",(int)round(fps)];?
?[fpsLabel setText: text];
?}
移除
- (void)dealloc {?
?[displayLink setPaused:YES];?
?[displayLink removeFromRunLoop:[NSRunLoopcurrentRunLoop] forMode:NSRunLoopCommonModes];
}
PS: iOS設(shè)備的屏幕刷新頻率是固定的,JPFPSStatus在正常情況下會在每次刷新結(jié)束都被調(diào)用,因為它本身就是跟屏幕刷新同步的。