我需要做一個項目,我將在屏幕上繪製一些圖形,其大約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. 爲什麼繪製OnPaint圖形比圖像圖形更快?
- 3. C#更快的繪製矢量圖形
- 4. 更快繪製矢量圖形
- 5. Iphone圖形
- 6. 快速圖形庫
- 7. XServer的快速圖形
- 8. Iphone圖形設計
- 9. iPhone中的條形圖3d
- 10. iphone中的核心圖形
- 11. iPhone上的圖形生成
- 12. Iphone上的條形圖
- 13. 適用的iPhone圖形庫
- 14. iPhone圖形,圖標,圖像的來源?
- 15. CALayer的setNeedsDisplayInRect - 什麼是InRect點?或更快的圖形中drawInContext
- 16. iPhone中需要更快的xml讀取
- 17. 更好的圖形卡或更多內核會使Mathematica更快嗎?
- 18. 更快的圖像加載在C + +形式
- 19. iPhone核心圖形爲子視圖較粗的虛線
- 20. iPhone設置圖標圖形(Icon-Small @ 2x)不更新
- 21. iPhone核心圖形動畫
- 22. 在iPhone上繪製圖形
- 23. 原生iphone圖形庫?
- 24. 更快的圖像加載
- 25. 將水平條形圖更改爲垂直條形圖
- 26. D3js - 將垂直條形圖更改爲水平條形圖
- 27. 如何以編程方式更改iPhone上的圖形元素?
- 28. Xlib的圖形功能是否快速?
- 29. 將Android工作室工作更快地專用圖形卡? (AMD)
- 30. 如何使用PyQtGraph和ScatterPlotItem(> 1 fps)快速更新圖形?
阿爾法: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