如果我将 2000x2000 转换UIView
为 200x200(使用myView.transform = CGAffineTransformScale(...)
),绘图会变得非常缓慢。
绘图代码非常简单:
-drawRect:
CGContextAddPath(context, activePath);
CGContextSetLineWidth(context, self.strokeWidth);
CGContextSetStrokeColorWithColor(context, self.strokeColor.CGColor);
CGContextSetLineJoin(context, kCGLineJoinRound);
CGContextSetLineCap(context, kCGLineCapRound);
CGContextStrokePath(context);
我是否需要做任何特别的事情来提高绘图性能?
ps 只要不转换绘图画布视图,我的绘图性能就会非常好。即大约60 fps。
pps 视图层次结构是这样的:
UIView
UIView > UIView (controls)
UIView > UIView (drawing container)
UIView > UIView (drawing container) > UIView (background view)
UIView > UIView (drawing container) > UIView (drawing canvas)
也许我的绘图代码不是问题;也许性能缓慢与我的视图层次结构有关。即使我不使用任何背景图像,我的绘图性能也会变慢,并保持绘图画布的背景为纯白色。有小费吗?