用CADisplayLink绘图不卡

2016-05-28  本文已影响75人  闲得一B
结论:
setNeedDisplay只是给当前控件添加刷新标记,并不会马上调用drawRect方法。
CADisplayLink每秒刷新60次,和屏幕刷新频率一样,所以不会卡。

在绘图的时候需要用到定时器,通常NSTimer很少用于绘图,
因为调度优先级比较低,并不会准时调用。

drawRect方法不能手动调用,因为需要系统自动设置上下文。
通过setNeedDisplay或者setneeddisplayinrect方法间接调用。

用CADsiplayLink创建定时器,需要加入循环。

CADisplayLink每次屏幕刷新的时候都会调用,屏幕一般一秒刷新60秒。
通过上下文绘图时需要调用setNeedsDisplay,
而setNeedDisplay并不会马上调用drawRect方法,
其实setNeedsDisplay这个方法只是给当前控件添加刷新的标记,
等下一次屏幕刷新的时候才会调用drawRect,而屏幕的刷新频率一般是60次,
所以屏幕的刷新频率和CADisplayLink刷新频率一样,所以不会卡。

上一篇 下一篇

猜你喜欢

热点阅读