1

UIView( を使用して) 2000x2000 を 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