2011-12-05 63 views
0

嗨我有動畫循環,但正在使用我的iphone CPU處理的90%,並加熱手機。我做錯了什麼?UIView動畫使用90%的CPU

有人可以給我一些建議嗎?

感謝

-(void)nextAnimation:(float)previousWidth { 

//picture loop 
imageViewTop.image = imageViewBottom.image; 
imageViewBottom.image = [imageArray objectAtIndex:[imageArray count] - 1]; 

[imageArray insertObject:imageViewBottom.image atIndex:0]; 
[imageArray removeLastObject]; 
imageViewTop.alpha = 1.0; 
imageViewBottom.alpha = 0.0; 

[UIView animateWithDuration:4.0 
       animations:^{ 
        imageViewTop.alpha = 0.0; 
        imageViewBottom.alpha = 1.0; 
        } 
       completion:^(BOOL completed){ 
        [self nextAnimation:stringsize.width]; 
       } 
]; 

回答

1

你有你的代碼無限循環。您必須有退出條件才能避免無限循環。靜態計數器爲零,如果counter> n退出,則運行一次add 1。

+0

是因爲是一個無限循環導致高CPU? 我需要它循環,直到找到位置,並用其他東西代替它 – Desmond

+0

我想也許是,你可以在nextAnimation上添加一個NSLog,看看它運行多少次,看看它是否像你想要的。 – Tinyfool

+0

在這段代碼中我沒有看到任何錯誤的無限循環。唯一的循環是所需的動畫循環。我每天都在做這類代碼。我認爲還有另一個問題。 –