结论:
setNeedDisplay只是给当前控件添加刷新标记,并不会马上调用drawRect方法。
CADisplayLink每秒刷新60次,和屏幕刷新频率一样,所以不会卡。
在绘图的时候需要用到定时器,通常NSTimer很少用于绘图,
因为调度优先级比较低,并不会准时调用。
drawRect方法不能手动调用,因为需要系统自动设置上下文。
通过setNeedDisplay或者setneeddisplayinrect方法间接调用。
用CADsiplayLink创建定时器,需要加入循环。
CADisplayLink每次屏幕刷新的时候都会调用,屏幕一般一秒刷新60秒。
通过上下文绘图时需要调用setNeedsDisplay,
而setNeedDisplay并不会马上调用drawRect方法,
其实setNeedsDisplay这个方法只是给当前控件添加刷新的标记,
等下一次屏幕刷新的时候才会调用drawRect,而屏幕的刷新频率一般是60次,
所以屏幕的刷新频率和CADisplayLink刷新频率一样,所以不会卡。
网友评论