0

500 ピースのオプションを追加したいパズル ゲームがあります。私は現在drawRect、作品の形を描くために使用しています。ピースの形状を事前に計算し、パスを使用して画像を次のようにクリップします。

- (void) drawRect:(CGRect)rect
{
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextBeginPath(ctx);
    CGContextAddPath(ctx, self.path);

    self.boundingBox = CGContextGetPathBoundingBox(ctx);
    CGContextClosePath(ctx);
    CGContextClip(ctx);
    [self.delegate.image drawAtPoint:CGPointZero blendMode:kCGBlendModeNormal alpha:1.0];

    CGContextDrawPath(ctx, kCGPathFillStroke);
}

これにより、アプリがクラッシュし、メモリが屋根を通過します。をコメントアウトするdrawRectと、ビューが正常に追加され、非常に高速になります。これは 100 個で機能しますが、それ以上になるとアプリがクラッシュします。すべてのコードをコメントアウトしてdrawRectも、クラッシュが発生します。

クラッシュしないことに注意してください。Process finished with exit code 0

ここでパフォーマンスを向上させるにはどうすればよいですか?

4

0 に答える 0