总结
- 研究CALayer的display流程。
1 2 3 4 5 6 |
|
setNeedDisplay时,是有BackingStore的参与的,通过符号断点CABackingStoreUpdate_可知。注:只创建CALayer时,需要调用setNeedDisplay才会使drawing cycle发起display流程;而创建UIView时设置frame时就会在UIView的内部调用setNeedDisplay,但是如果不把创建的view添加到父View上的话,CALayer的display方法同样也不会被调用,因为没有父View与说明不需要显示,那么肯定不会有display流程。
不setNeedDisplay时,即直接修改layer的content时,无BackingStore参与,不会走display流程,conten不经过BackingStore这个缓冲区而直接被OpenGLES合成后加载到了GPU,而被显示了。相当于少了一道工序。这个流程应该与1.3一致。