1

如果我将 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)

也许我的绘图代码不是问题;也许性能缓慢与我的视图层次结构有关。即使我不使用任何背景图像,我的绘图性能也会变慢,并保持绘图画布的背景为纯白色。有小费吗?

4

0 回答 0