我需要做一個項目,我將在屏幕上繪製一些圖形,其大約25個分離的條,我用UIView完成它,但不幸的是,並非所有的設備都可以處理這個工作,因爲有UIViews的一個25x25的矩形矩陣,它們在0.04秒內更新它的顏色和alpha,並且它真的需要大量的內存才能像這樣畫出來,有人可以幫助一個目的,怎麼能更快地完成內存管理,以及是否有可能控制其組件,如對象的Alpha或背景顏色。在此先感謝更快的圖形爲iPhone
0
A
回答
1
Go for OpenGL。它具有非常高效的2D繪圖機制。
3
我的理解是,你使用每個酒吧25個子視圖。您已經可以優化它並使每個條形成單個UIView
。您可以製作一個UIView
的自定義子類,我們將其稱爲BarView
,並覆蓋其drawRect
方法以繪製條的25個方格。
編輯
假設有一個包含25巴(的Bar
型)的陣列bars
。每個小節包含25個方塊(類型爲Square
)的數組squares
。
- (void)drawRect:(CGRect)rect
{
CGContextRef *ctx = UIGraphicsGetCurrentContext();
for (Bar *bar in self.bars) {
for (Square *square in bar.squares) {
CGContextSetFillColorWithColor(ctx, square.color.CGColor);
CGContextFillRect(ctx, square.frame);
}
}
}
Bar
和Square
不繼承UIView
,它們是簡單NSObject
秒。
最後要注意的是,這段代碼僅僅是一個例子,有可能進一步提高性能。
1
您可能想切換到this answer中建議的基於Core Animation的繪圖方法。這個想法是使用Core Graphics繪製儘可能少的東西。相反,您可以爲所有獨立動畫圖形元素和動畫圖層屬性創建圖層。
要繪製條,您可以創建一個圖層並設置它的backgroundColor和bounds/center屬性以動畫化它的大小和外觀。
+0
謝謝,已經試圖用CALayers來製作,但不幸的是它效果更糟......酒吧的動畫比他們應該更加精彩! – Florik 2012-03-05 12:27:19
相關問題
- 1. 更快的圖形
- 2. 更快的圖形DrawImage
- 3. 爲什麼繪製OnPaint圖形比圖像圖形更快?
- 4. Java圖形更新太快
- 5. C#更快的繪製矢量圖形
- 6. 更快繪製矢量圖形
- 7. Iphone圖形
- 8. 快速圖形庫
- 9. XServer的快速圖形
- 10. Iphone圖形設計
- 11. iPhone:圖像變形
- 12. iPhone:存儲圖形路徑作爲恆
- 13. iPhone中的條形圖3d
- 14. Iphone上的條形圖
- 15. iphone中的核心圖形
- 16. 適用的iPhone圖形庫
- 17. iPhone上的圖形生成
- 18. Java移動矩形更快?
- 19. iPhone圖形,圖標,圖像的來源?
- 20. iPhone中需要更快的xml讀取
- 21. 更改快門動畫的顏色iphone
- 22. CALayer的setNeedsDisplayInRect - 什麼是InRect點?或更快的圖形中drawInContext
- 23. iPhone核心圖形爲子視圖較粗的虛線
- 24. 更好的圖形卡或更多內核會使Mathematica更快嗎?
- 25. iPhone設置圖標圖形(Icon-Small @ 2x)不更新
- 26. 更快的圖像加載在C + +形式
- 27. python pandas:爲什麼地圖更快?
- 28. iPhone核心圖形動畫
- 29. 在iPhone中實現圖形
- 30. 原生iphone圖形庫?
阿爾法:https://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instp/UIView/alpha BGCOLOR:HTTPS ://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instp/UIView/backgroundColor – 2012-03-05 11:53:30