2016-11-14 108 views
0

目前我正在使用已經建立的應用程序,它使用核心繪圖和特定的使用ScatterPlot繪製圖形。此圖形是使用從連接的藍牙設備獲取的值繪製的,因此圖形是動態繪製的。 X軸具有時間值,Y軸具有來自BLE設備的值的XY圖形。核心圖 - 添加OutOfRange繪製圖形,動態變化與標籤「OL」

現在需要在圖形中添加帶有標籤「OL」的超出範圍的值,並且它不是藍牙設備的固定常數值(它更多的是在BLE中構建的模型對象中設置的狀態圖層與該狀態獲得的垃圾值,我們可以找出它的超出範圍值)。因此,例如,如果我最初得到「OL」值,那麼我需要將它添加到標記爲「OL」的0以上的圖上。 '-OL'低於0並帶有標籤「-OL」。從BLE中獲得的值將不斷添加到數組中,並使用此數組重新繪製圖形。

因此,預期行爲如下: 如果我得到200作爲陣列中的值,並且如果陣列具有OL值,則OL值必須繪製在200以上,並且如果BLE的下一個值是300將被添加陣列,因爲OL在200以上,現在OL必須被繪製在300以上。

我嘗試了2-3種不同的方法來找出解決方案,但沒有成功。

圖像的預期要求:

Image of the expected requirement

需要有人幫忙,如果其可以實現這一點使用核心情節。

+0

您是否需要OL值處的連接線與圖形中的顏色不同,或者是否將點與相同的數據線連接? –

+0

是的,Eric的期望和形象一樣。 –

+0

@EricSkroch我對此有何更新? –

回答

0

您需要紅線的第二個散點圖。在主圖中,對於超出有效範圍的值,從數據源返回nil。這將留下線中的空白,以填補其他情節。

對於第二個圖,從每個數據索引中返回nil,除了那些超出有效範圍的數據索引。返回這些點的範圍限制值。您還需要返回超出範圍值兩側的兩個點的正確範圍內值,以將該線連接到主要繪圖線。

+0

與2個不同的散點圖我們可以區分值,但我的問題也是提供OL字符串作爲標籤在「Y」軸像在圖像。我創建了一個NSFormatter子類,並重寫stringForObject和stringForValue,並返回許多網站指定的OL,但是我面臨的問題是如何在格式化程序類中標識其是否爲OL值。你能否儘快提供你的意見。 –

+0

使用自定義的y軸標籤('CPTAxisLabelingPolicyNone')以極限值顯示「OL」。您可能不需要自定義格式化程序來執行此操作。正常格式化數值,並在創建自定義標籤時返回OL值的「OL」字符串。如果OL值根據新數據更改,請更新滴答位置和標籤以匹配新值,並重新加載繪圖數據以根據新的OL值在正確位置繪製紅色線段。 –

+0

謝謝Eric的回覆。我是新的核心plot.I需要更多的信息w.r.t你提供的解決方案。我嘗試了自己並Google搜索,但沒有成功。 「返回這些點的範圍限制值。您還需要返回超出範圍值兩側的兩個點的正確範圍內的值,以將該線連接到主要的繪圖線。「 - 您能否指導我如何實現這一點。 –