4.000 を超える CGPoints を持つ NSArray があります
[NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(213, 30)], ...
私のUIViewController内からそれらの間の点または線を描きたいです。iOS デバイスに最適な方法は何ですか? thnx
4.000 を超える CGPoints を持つ NSArray があります
[NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(213, 30)], ...
私のUIViewController内からそれらの間の点または線を描きたいです。iOS デバイスに最適な方法は何ですか? thnx
スプライトまたはパーティクル生成を使用しようとしているように聞こえますか? 詳細がわからないので、一般的な回答しかできませんが、試してみてください。ポイントがすべて単純な 1 ピクセルの色付きのものであると仮定しましょう。グラデーションやパスは必要ありません。「x、y のピクセルを赤/緑/青に設定する」だけです。
CALayer
4,000 個のオブジェクトを同時に簡単に操作できるはずです。
CALayer *rootLayer = [[self view] layer]; // assumes self is a view controller
NSMutableArray *mSprites = [NSMutableArray array]; // to store references to the layers
for (int i = 0; i < 4000; i++) {
CALayer *layer = [CALayer layer];
NSAssert1(layer != nil, @"failed to create CALayer #%i", i);
layer.backgroundColor = [UIColor colorWithRed:... green:... blue:... alpha:1.0].CGColor;
layer.frame = CGRectMake(rand(), rand(), 1.0, 1.0);
[mSprites addObject:layer];
[rootLayer addSublayer:layer];
}
self.my4000SpritesProperty = mSprites;
次に、それらを操作するときは、配列に移動してself.my4000SpritesProperty
、レイヤーのフレームまたはその他のプロパティを変更します。
4,000 要素の場合、Core Animation で許容できるパフォーマンスが得られるはずです。