2016-07-15 111 views
1

如何使UIView背景顏色像Instagram一樣不斷變化登錄屏幕如圖像中所示內存中沒有負載。背景顏色連續變化 - iOS

enter image description here enter image description here

+1

的可能的複製[您如何明確動畫一個的CALayer的的backgroundColor?](http://stackoverflow.com/questions/518192/how-do-you-explicitly-animate -a-calayers-backgroundcolor) – Cyrille

+0

你可以使用NSTimer? –

回答

0

要更改背景顏色,你只是做:

self.view.backgroundColor=yourColor; 

,並改變這種不斷你可以使用timer.IF你有一個數組的顏色爲背景,商店數組中的顏色。

​​

您還可以生成一個random顏色,並將其傳遞給視圖background.In這種情況下,你可以這樣做(在這種情況下,你不必顏色存儲在一個陣列)

 self.view.backgroundColor=metodThatReturnsRandomColor. 

或者,聲明計時器每1.0秒調用changeColor方法。

@property (nonatomic, retain) NSTimer * timerIvar; 


self.timerIvar = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(changeColor) userInfo:nil repeats:YES]; 

,並且該方法將是:

-(void)changeColor{ 
     if(x<colorArray.count){ 
     self.view.backgroundColor=colorArray[x]; 
     }else{ 
      x=0; 
     } 
     x++; 
    } 

同樣的邏輯適用於圖像/ gradient colors

,並記得viewWillDisappear

- (void)viewWillDisappear:(BOOL)animated 
{ 
    ... 
    [self.timerIvar invalidate]; 
self.timerIvar = nil; 
} 
+0

嗯,這看起來有點糟糕,或者你將不得不有一個非常巨大的數組與所有顏色等級 – s1ddok

+0

在循環中創建一個顏色漸變而不是從數組中選擇它會更好。否則,它會看起來像一個便宜的霓虹燈,改變顏色。 – NSNoob

+0

我不認爲存儲顏色會造成內存問題,只要您正確地管理它。 @ s1ddok –