在 iOS objective-c 中从 UIViewController 中绘制 4.000 个点或线



我有一个超过 4.000 CGPoints 的 NSArray

[NSArray arrayWithObjects:
                   [NSValue valueWithCGPoint:CGPointMake(213, 30)], ...

并希望从我的 UIViewController 内部绘制它们之间的点或线。iOS设备的最佳方法是什么?嘟

听起来你正在尝试使用精灵或粒子生成?不知道更多细节,我只能给出一个笼统的答案,但莱姆试一试。让我们假设这些点都是简单的 1 像素彩色东西。无需渐变或路径,只需"将x,y像素设置为红色/绿色/蓝色"。

您应该能够轻松地同时操作 4,000 个CALayer对象:

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 个元素,您应该看到核心动画的可接受性能。

最新更新