我有一个超过 4.000 CGPoints 的 NSArray
[NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(213, 30)], ...
并想从我的 UIViewController 中绘制它们之间的点或线。iOS设备的最佳方式是什么?谢谢
我有一个超过 4.000 CGPoints 的 NSArray
[NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(213, 30)], ...
并想从我的 UIViewController 中绘制它们之间的点或线。iOS设备的最佳方式是什么?谢谢
听起来您正在尝试使用精灵或粒子生成?在不知道更多细节的情况下,我只能给出一个笼统的答案,但让我试一试。让我们假设这些点都是简单的 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 的性能可以接受。