2012-08-07 129 views
2

通過閱讀文檔,我不清楚重寫UIView的drawRect或使用圖層是否合適。在iOS上繪製圖形:使用圖層或覆蓋drawRect?

我將呈現兩種圖形。線條圖和單條條形圖。兩者都沿着軸線有刻度線,文字與刻度線對齊。下面我只顯示每個軸四個刻度,但可能還有更多。

  1. 什麼是繪製蜱的更好方法?我應該爲每個勾號使用一個單獨的圖層,還是使用一個單獨的視圖一次全部渲染它們:drawRect

  2. 是否有另一種方法來呈現文本,而不是每個使用單獨的UILabel

  3. 對於條形圖,我使用CAGradientLayer爲酒吧。對於線圖,甚至可以使用圖層來渲染它。

樣品格拉夫

enter image description here

+7

有一個WWDC討論會討論Stocks.app中的圖表。它被稱爲適用於iOS開發人員的實用繪圖,來自WWDC 2011. – 2012-08-07 17:14:53

+3

您還可以查看[CAShapeLayer](http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CAShapeLayer_class/Reference/Reference。 html)爲線圖。 – 2012-08-07 17:20:11

+0

@DavidRönnqvistCAShapeLayer看起來正是我所需要的。從我讀過的內容來看,CALayer高度優化,並且具有各種各樣的動畫效果,除非您無法使用CALayer進行渲染,否則手動渲染無效。 – Brian 2012-08-07 17:21:53

回答

2

最後,我使用重寫drawRectCALayer/CAShapeLayer的組合。現在已經完成了從頭開始實施這個過程,我會去形狀和層次。

形狀和圖層的方法是很多高性能,並且是一個更強大的解決方案。最後,如果你正在做動畫等事情,它會減少代碼。