2013-05-07 49 views
0

在我的應用程序中,我使用Coreplot繪製CPTScatterPlot。現在我想在圖表上做一個掃描儀,這個UIView(一行)的動畫應該像一條與Y軸對齊的行,並且通過x = 0到達x的最後一個值。如何檢測CPTPlotspace上自定義UIView的座標?

我想在這個自定義UIView(掃描儀)傳播時基於y值執行操作。

任何幫助,將不勝感激。

感謝,

回答

0

我有我的一個應用程序類似的東西,我去它的方式是對散點圖上添加一個柱狀圖,我用條形圖來表示跟蹤線用戶的觸摸。 然後我有一個UIView覆蓋在情節和追蹤散點圖觸摸並顯示點被觸摸的細節。

如果你只是想顯示一條線,添加一個條形圖可能是最簡單的,那麼你不必擔心繪圖空間座標vs超視圖座標。 條形圖數據源僅返回用戶正在觸摸的位置的值,其高度與散點圖的大小相匹配。

快速版本是可以使用handlePlotTouchEventInSpace:atPoint:isNewEvent來跟蹤用戶在圖上的觸摸。

從那裏您可以使用plotPoint:forPlotAreaViewPoint方法在繪圖空間中獲取觸摸的座標。

這樣的事情是一個很好的起點。這是一個讓所有人都能工作的旅程,但是一旦你開始了這個難題,它也不會太壞。

-(void)handlePlotTouchEventInSpace:(CPTPlotSpace *)space atPoint:(CGPoint)point isNewEvent:(BOOL)newEvent { 
    NSDecimal plotPoint[2]; 
    CPTXYPlotSpace *xySpace = (CPTXYPlotSpace *)space; 
    [xySpace plotPoint:plotPoint forPlotAreaViewPoint:point]; 

之後,plotPoint將包含觸摸在繪圖空間內的x和y位置。

+0

我已經繪製了一個線條圖,我想給出一個通過從圖的左邊到右邊角動畫一條線來掃描此圖的印象,並且同時我想知道這條線何時穿過每個x座標。 – Ashutosh 2013-05-08 00:18:46

+0

在這種情況下,您應該能夠將您在handlePlotTouchEventInSpace中獲得的CGPoint發送到scatterPlot上的indexOfVisiblePointClosestToPlotAreaPoint方法並獲取索引。您只需將該索引用作條形圖中的一個數據點,然後在用戶移動時重新加載條形圖 – 2013-05-08 01:39:44

+0

但我的應用程序中沒有任何觸摸。 – Ashutosh 2013-05-08 17:48:02