2010-10-26 65 views
2

我創建了折線圖。現在我需要在點擊屏幕時在該圖表上顯示點。 什麼是最好的方法?我是否需要再次調用drawRect方法,繪製帶有標記點的整個圖表?在沒有drawRect的現有UIView上繪製線條/點?

我正在考慮像圖上的透明層UIView。 我可以創建另一個透明的UIView並將其放在我的圖表位置上嗎?

回答

1

由於所有繪圖都是在視圖的drawRect:中完成的,因此只能優化圖表的繪圖,以便僅更新它的一部分並使用setNeedsDisplayInRect:(傳遞標記應該在的區域)。

或者您創建另一個UIView子類,它位於圖表頂部,除了在透明背景上繪製標記外,什麼都不做。可能更容易,更快實施。它還有另一個好處:

如果您只將視圖製作爲與標記的邊界框一樣大,那麼也可以輕鬆地對其進行設置,例如淡入淡出。或者讓它稍微旋轉一下(爲了看到我記住的效果,請在Mac OS X中選擇「幫助」菜單,在搜索字段中輸入某些內容(如「a」),然後看到菜單項旁邊的標記稍稍移動在一個地方)。

+0

我決定在前面創建新的UIView。 – plusz 2010-10-27 13:35:51

0

您可以使用setNeedsDisplayInRect:來繪製部分視圖。

+0

在這種情況下,您還需要使用drawRect中的rect參數:僅在該矩形中繪製... – gcamp 2010-10-26 13:35:14

+0

hm ...但將reauire來計算此矩形中的圖形形狀,並在touchesEnded I需要清除這個區域。在同一矩形中創建另一個UIView是否好主意? – plusz 2010-10-26 13:43:49

相關問題