我一直在玩一些動畫,而且恰好我沒有附近的設備進行測試。我有一個簡單的動畫雲在天空中移動。雲是動畫用這種方法:iOS模擬器運行動畫的效率降低了嗎?
-(void)animateLayer:(CALayer*)layer toPosition:(CGPoint)position withDuration:(CGFloat)duration{
// Prepare the animation from the current position to the new position
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
animation.fromValue = [layer valueForKey:@"position"];
animation.toValue = [NSValue valueWithCGPoint:position];
animation.delegate = self;
animation.duration = duration;
[animation setValue:layer forKey:@"cloudLayer"];
// Update the layer's position so that the layer doesn't snap back when the animation completes.
layer.position = position;
// Add the animation, overriding the implicit animation.
[layer addAnimation:animation forKey:@"position"];
}
該層包含一個簡單的部分透明的圖像。但是,當我運行這個時,CPU利用率比我預期在我的MacBook Air上高出很多。我有沒有效率低下?還是模擬器只是咀嚼了很多資源,如動畫等特定任務?
呃,我只是想出了爲什麼我的CPU利用率如此之高。這是因爲我正在創建一個大圖層,但沒有將「不透明」設置爲「是」。無論我想知道ios模擬器與設備相比處理某些任務的方式是否有所不同。 – Saltymule