CAEmitterLayer разряжает батарею - PullRequest
0 голосов
/ 15 января 2019

Мой проект работает с iPhone IOS 12+, и я использую излучатель огня, чтобы следить за пальцем пользователя по экрану (с распознавателем панорамирования). При использовании следующего кода я заметил, что экран становится теплее, когда в него играют, и он имеет тенденцию разряжать батарею быстрее, чем обычно, чем больше используется приложение.

Есть ли какой-нибудь конкретный источник огневого излучателя, который следит за пальцем по экрану, и в то же время имеет удобное решение для батареи?

//set ref to the layer
 cursorEmiter = [CAEmitterLayer layer];

//configure the emitter layer
cursorEmiter.emitterPosition = CGPointMake(50, 50);
cursorEmiter.emitterSize = CGSizeMake(5, 5);
CAEmitterCell* fire = [CAEmitterCell emitterCell];


fire.birthRate = 1000; // The number of emitted objects created every second. Animatable
fire.lifetime = 0.6; // The lifetime of the cell, in seconds. Animatable
fire.lifetimeRange = 0.5;

fire.color = [[UIColor colorWithRed:1.0 green:0.4 blue:0.2 alpha:0.3]
              CGColor];

fire.contents = (id)[[UIImage imageNamed:@"PopCornSmall.png"] CGImage];

fire.velocity = 10; // The initial velocity of the cell. Animatable
fire.velocityRange = 20;
fire.scaleSpeed = 0.3;
fire.spin = 0.5;
cursorEmiter.renderMode = kCAEmitterLayerAdditive;

[fire setName:@"fire"];

//add the cell to the layer and we're done
cursorEmiter.emitterCells = [NSArray arrayWithObject:fire];
emiterNotAdded = false;
[(CAEmitterLayer *)self.layer addSublayer: cursorEmiter];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...