SciChart IOs光标和工具提示修改器

SciChart IOs光标和工具提示修改器,ios,objective-c,swift,charts,scichart,Ios,Objective C,Swift,Charts,Scichart,在SciChart IOs折线图上滚动时,工具提示中是否只显示一个值?在android和WPF中有很多这样做的例子,但在IOs中没有。您需要实现以下内容。首先是一个自定义的可渲染系列,例如,如果您使用的是LineRenderableSeries,则必须创建一个从SCIFastLineRenderableSeries派生的新类,并重写SeriesInfo:方法,如下所示 class CustomLineSeries : SCIFastLineRenderableSeries {

在SciChart IOs折线图上滚动时,工具提示中是否只显示一个值?在android和WPF中有很多这样做的例子,但在IOs中没有。

您需要实现以下内容。首先是一个自定义的可渲染系列,例如,如果您使用的是LineRenderableSeries,则必须创建一个从SCIFastLineRenderableSeries派生的新类,并重写SeriesInfo:方法,如下所示

  class CustomLineSeries : SCIFastLineRenderableSeries {
       override func toSeriesInfo(withHitTest info: SCIHitTestInfo) -> SCISeriesInfo! {
                return CustomSeriesInfo(series: self, hitTest: info)
            }
 }
在以下步骤中,我们将创建一个CustomSeriesInfo类,该类将在我们刚刚创建的自定义可渲染系列类中使用:

class CustomSeriesInfo : SCIXySeriesInfo {
    override func createDataSeriesView() -> SCITooltipDataView! {
        let view : CustomSeriesDataView = CustomSeriesDataView.createInstance() as! CustomSeriesDataView

        view.setData(self)
        return view;
    }
}
最后,我们创建了一个自定义系列数据视图-一个实际视图,在该视图中,我们可以显示所需的内容:

class CustomSeriesDataView : SCIXySeriesDataView {

    static override func createInstance() -> SCITooltipDataView! {
        let view : CustomSeriesDataView = (Bundle.main.loadNibNamed("CustomSeriesDataView", owner: nil, options: nil)![0] as? CustomSeriesDataView)!
        view.translatesAutoresizingMaskIntoConstraints = false
        return view
    }

    override func setData(_ data: SCISeriesInfo!) {
        let series : SCIRenderableSeriesProtocol = data.renderableSeries()

        var xFormattedValue : String? = data.fortmatterdValue(fromSeriesInfo: data.xValue(), for: series.dataSeries.xType())
        let xAxis = series.xAxis

        if (xFormattedValue == nil) {
            xFormattedValue = xAxis?.formatCursorText(data.xValue())
        }

        self.dataLabel.text = ""
        self.nameLabel.text = String(format: "X: %@", xFormattedValue!)

        self.invalidateIntrinsicContentSize()
    }
}
注意:您必须创建一个实际视图,并使用CustomSeriesDataView作为其主类;还可以捆绑插座