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
ここでパフォーマンスを向上させるにはどうすればよいですか?