私のアプリケーションは、いくつかの単純な図形の描画を行うことができ(より安定したコードを取得するまで、1つの図形のみを使用します)、サイズを変更することもできます。を作成するために使用するコードUIView
は次のとおりです。
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
[self setContextFillColor:context];
[self setContextStrokeColor:context];
[self setLineWidth:context];
CGFloat lineThickness = [self lineWidth] ;
CGFloat halfLineThickess = lineThickness / 2.0f;
CGContextAddRect(context, CGRectMake(halfLineThickess,halfLineThickess, rect.size.width - lineThickness, rect.size.height - lineThickness));
CGContextDrawPath(context, kCGPathEOFillStroke);
}
これにより、入力サイズが(100.0f、100.0f)の場合、次のようになります。
この図は「コンテナ」の中にあり、「コンテナ」UIView
はの中にありUIScrollView
ます。これに関する私の問題は、フィギュアのサイズを変更していて、サイズが約1000 * 1000(私の「コンテナ」は20,000 * 20,000)に達したときに、メモリ警告を受け取り始め、アプリケーションが最終的にあきらめることです。だから私の質問は:
1)最大サイズを入れることを検討する必要がありUIView
ますか?
2)この種の問題を追跡し、問題がどこで発生しているのか(またはどこで重い作業が行われているのか)を確認するために、どのように機器を使用できますか?
3)このようなキャッシュを使用する必要がありますか?
4)描画するときに考慮すべき一般的なベストプラクティスUIView
はありますか?
5)CALayer
タッチを聞く必要がありますが、検討する必要がありますか?
のサイズ変更は、主にこれUIView
に基づいています。