2010-03-26 18 views
0

我必須做一些包含72個LED燈的不同視圖。我建立了一個LED類,這樣我就可以循環使用LED並將它們設置爲不同的顏色(綠色,紅色,橙色,藍色無等)。 LED然後加載適當的.png。爲很多「LED」動畫製作策略 - 線程?,UIView動畫?的NSOperation? (iPhone)

這工作正常,我循環LED並設置它們。 現在我知道在某些時候,他們不僅需要打開/關閉變色,而且必須稍微延遲打開。就像一個均衡器。

我有一個包含72個LED的5-10個視圖,我想用最少的內存/ CPU應變來實現上述目標。

for(LED *l in self.ledArray) { 

    [l display:Green]; 
} 

如上所示和所述LED的內部予簡單地迴路是switch case,做正確的邏輯。 如果這是實際的LED和microController,我會在循環中使用sleep(100)或類似的,但我真的很想避免這樣的東西,原因很明顯。

我在想,做一個performOnThread withDelay真的會消耗,所以UIView animation改變阿爾法和NSOperation也將是一個小功能很多提升。

有沒有既高效又聰明的方法來解決這個問題?

感謝給出的任何靈感:)

回答

2

我肯定會使用OpenGL!

+0

嗨rjobidon 使用.png的開銷如此之大以至於合理嗎? 自從使用png實現上述功能以來,我一直在經歷一些滯後,我只是沒有到處去證明png是罪魁禍首。 感謝您的輸入:) – RickiG

+0

OpenGL將成爲處理大量圖像操作的一種魅力,具有高幀率。如果你不需要OpenGL,你也可以實現一個離屏緩衝區來做精靈操作,然後更新一個圖像視圖。它可能比OpenGL簡單,比72個獨立的圖像更有效。你的第一個解決方案很簡單,但迫使操作系統處理72個圖形對象......祝你好運! – rjobidon