как Вы копируете CALayer?

Так что просто зайдите в ваш index.html внутри вашей общей папки и внутри

<div id="root"><-- Add Splash screen html code here --></div>

добавьте ваш код заставки, когда реагирует на загрузку, он заменяет весь контент внутри div id root

10
задан Reeds 30 March 2009 в 00:48
поделиться

2 ответа

CALayer не имеет встроенного -(id)copy метод. Я не уверен почему. Это не трудно к джину Ваше собственное как бы то ни было. Создайте категорию CALayer и запишите свой собственный метод копии. Все, что необходимо сделать, инстанцируют и вручную получают общественность ivars/properties из оригинала и набора к новой копии. Не забывайте звонить [super copy]

BTW, CALayer является объектом. Можно добавить его к NSArray.

5
ответ дан 3 December 2019 в 15:06
поделиться

Я делаю точно то же самое в своей программе.

В init:

    self.turrets = [NSMutableArray array];
    for (count = 0; count < kMaxTurrets; count++)
        [self spawnTurret];

spawnTurret:

evTurret* aTurret = [[[evTurret alloc] init] autorelease];
CGImageRef theImage = [self turretContents];
aTurret.contents = theImage;
double imageHeight = CGImageGetHeight(theImage);
double imageWidth = CGImageGetWidth(theImage);
double turretSize = 0.06*(mapLayer.bounds.size.width + mapLayer.bounds.size.height)/2.0;
aTurret.bounds = CGRectMake(-turretSize*0.5, turretSize*0.5, turretSize*(imageWidth/imageHeight), turretSize);
aTurret.hidden = YES;
[mapLayer addSublayer:aTurret]; 
[self.turrets addObject:aTurret];

По сути, я просто многократно создаю объекты CALayer. Это будет быстрее, чем их копирование, так как этот метод требует только 1 вызова CALayer для каждого свойства, в отличие от копирования, которое требует прочитать свойство, а затем дополнительно установить его. Я породил около 500 объектов с помощью этого метода примерно за 0,02 секунды, так что это определенно быстро. Если вам действительно нужно больше скорости, вы можете даже кэшировать файл изображения.

1
ответ дан 3 December 2019 в 15:06
поделиться