渲染大量路径的最佳方法是什么? 512在视图的drawRect?
我想实时绘制512个像素宽的像素段,并且不确定如何以最高性能执行此操作。
创建和绘制所有这些段作为BezierPath或多个bezierPaths的速度还不够快。
我已经读过可以使用CGLayers并将其渲染到目标UIView中。
从视图上下文设置图层并使用自己的上下文写入其他图层后,可以使用
将图层绘制到视图中CGContextDrawLayerAtPoint(context, point, layer);
如果图层中有不断绘制的内容,应该何时通过setNeedsDisplay通知UIView并且它们是否可以保持同步?例如没有将setNeedsDisplay调度到主线程(这感觉不对)。
一旦进行了这项优化,在图层中渲染如此多的路径/线条的最佳方法是什么?
答案 0 :(得分:0)
如果您想要非常快,请使用OpenGL ES;)否则,需要考虑一些因素:
if(array.count < 3) { y += array.count } else { y += 3 }
之类的事情,因为int array_count = array.count; if(array_count < 3) { y += array_count } else { y += 3 }
更快!好的,在这种情况下没有太大区别,但在很多情况下这些事情都很重要!避免在内循环中创建太多对象。