SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, iOS Chart, Android Chart and JavaScript Chart Components

0 votes

SplineLineRenderableSeries doesn’t render curved graph line properly in Swift , it renders stepped line for the data series .For reference please check the Screenshot attached ,ECG line(Green) rendered as stepped line (Marked by rectangle). Let me know anything I need to update in my code

Please find below the code for initialisation go the graph and updating the graph same. I am updating graph realtime with same DataSeries.

  1. Graph initialisation code

    func init_ECG_Chart()
    //Remove Theme From Chart By Apply & Remove & Change Border color
    SCIThemeManager.applyTheme(to: self.ecg_Chart_Surface, withThemeKey: SCIChart_Bright_SparkStyleKey)
    SCIThemeManager.removeTheme(byThemeKey: SCIChart_Bright_SparkStyleKey)

    self.ecg_Chart_Surface.isOpaque = false
    self.ecg_Chart_Surface.backgroundColor = .clear
    self.ecg_Chart_Surface.renderableSeriesAreaBorderStyle = SCISolidPenStyle(color: .clear, thickness: 0)
    let lineSeries = SCISplineLineRenderableSeries()
    lineSeries.strokeStyle = SCISolidPenStyle(color: ecgSelectedColor, thickness: 2.0)
    lineSeries.dataSeries = ecgLineDataSeries

    // lineSeries.resamplingMode = SCIResamplingMode_None //Resampling off
    // lineSeries.resamplingMode = SCIResamplingMode_Auto //Resampling off

    let xAxis = SCINumericAxis()
    xAxis.axisAlignment = .bottom
    xAxis.drawLabels = false
    xAxis.drawMajorGridLines = false
    xAxis.drawMinorGridLines = false
    xAxis.drawMajorTicks = false
    xAxis.drawMinorTicks = false
    let yAxis = SCINumericAxis()
    yAxis.axisAlignment = .left
    yAxis.drawLabels = false
    yAxis.drawMajorGridLines = false
    yAxis.drawMinorGridLines = false
    yAxis.drawMajorTicks = false
    yAxis.drawMinorTicks = false
    yAxis.autoRange = .never   //Stop auto ranging axis
    yAxis.visibleRange = SCIDoubleRange(min: -32, max: 96)

    // yAxis.visibleRangeLimit = SCIDoubleRange(min: -32, max: 96)

    yAxis.growBy = SCIDoubleRange(min: 0.2, max: 0.2)
    SCIUpdateSuspender.usingWith(self.ecg_Chart_Surface) {
        self.ecg_Chart_Surface.xAxes.add(items: xAxis)
        self.ecg_Chart_Surface.yAxes.add(items: yAxis)
        self.ecg_Chart_Surface.renderableSeries.add(items: lineSeries)
        //self.ecg_Chart_Surface.chartModifiers.add(items: SCIZoomExtentsModifier(),SCIPinchZoomModifier())

    } //Init ECG

  2. Graph updation code

    func update_ECG_Chart(xValues:SCIDoubleValues,yValues:SCIDoubleValues)

    SCIUpdateSuspender.usingWith(self.ecg_Chart_Surface) {
        self.ecgLineDataSeries.append(x: xValues, y: yValues)
      //  self.ecg_Chart_Surface.zoomExtents()

    } //Update ECG

1 vote

Try to integrate new SciChart.xcframework 4.2.0 instead of SciChart.framework 2.0 to the project and build failed in Xcode 12.4 with the next errors:
1) 335th line: Editor placeholder in source file
2) 549th line: Cannot convert value of type ‘Bundle.Type’ to expected argument type ‘Bundle’ SCIThemeManager.addTheme(byThemeKey: theme, from: Bundle)
3) 768th line: Method does not override any method from its superclass
override func internalHandleGesture(_ gestureRecognizer: UIGestureRecognizer)
1) 4th line: Cannot find type ‘SCIAnnotationDragListener’ in scope
class AnnotationDragListener: SCIAnnotationDragListener
1) 475th line: Editor placeholder in source file
SCIThemeManager.addTheme(byThemeKey: theme, from: Bundle)
Can you tell me please can I launch SciChart.xcframework 4.2.0 in Xcode 12.4? Any how to solve this issues?

0 votes


I’m trying to convert Java code to swift and I need the AnnotationLabel’s setAxisLabelStyle equivalent.

AnnotationLabel annotationLabel = new AnnotationLabel(getContext());

            annotationLabel.setAxisLabelStyle(new Action1<AnnotationLabel>()
                public void execute(AnnotationLabel annotationLabel)
                    annotationLabel.setFontStyle(new FontStyle(37.0f, Color.BLUE));

How can i apply this code in swift?

1 vote


I’m trying to convert Java code to swift and I need the RolloverModifier class’s updateCurrentPoint method. I create CustomRolloverModifier class inherits from SCIRolloverModifier class and import SciChart.Protected.SCIRolloverModifier extension too. But i can’t find updateCurrentPoint method. What is the updateCurrentPoint equivalent method on swift?


0 votes


How can i listen annotation selection changes? I try this code but i’m getting error “Cannot assign to property: ‘lineAnnotation’ is immutable”

var lineAnnotation = SCILineAnnotation()
lineAnnotation.annotationSelectionChangedListener = { (annotation, isSelected) in


0 votes


I’m trying to convert Java code to swift and I need the same CustomCategoryDateAxis class as Yura’s answer:

I try to inherit from SCICategoryDateAxis but there is no isZoomConstrainSatisfied and coerceVisibleRange overrides.

How can i write the same code in swift?


0 votes

I’m trying to convert Android (Java) code to iOS (Swift), and I need to create a custom SCIZoomPanModifier. In the android code, onFling, onDown, and onDown were overridden, but I can’t seem to do that in iOS. How can I override onFling, onDown, and onUp in iOS to mimic the android code?


1 vote

I didn’t see anything in any docs, so I am just wanting to verify this info…

Is this correct that you have to link in and ship the libSwiftCore (+ other swift libs) with an app using SciCharts on iOS? When I added the chart library to my app; the app crashed at startup with missing dynamic load of libSwiftCore.dylib on a real device (emulators run fine).

Enabling ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES in the build settings fixed this issue. But this surprised me that the SciChart library would actually require Swift.

Was this intentional; or did the library somehow pickup an unintentional reference somewhere….

0 votes

I would like to add scrollBar to SCINumericAxis for example xAxis.

I did find documentation:

But on iOS version, I can’t find numericAxis.Scrollbar is missing

0 votes

How would I go about doing this in swift?

0 votes
0 answers


I am using sci chart version in that I am getting date wrong, I have attached image please go through it.Here I am sending previously how I am getting date and now what I am getting.

I am using date formatter “dd/MM/yyyy”

finalDateStr = “29/08/2016” and finalWeightStr = “76.7”

dataSeries.appendX(SCIGeneric( finalDateStr)!), y: SCIGeneric(finalWeightStr))

0 votes
0 answers

Working on building a candlestick chart in Swift. I have a working chart following the example. I get zoom and pan fine. But am getting an error when I swipe left on the chart. Can’t quite figure out what I’m missing. Seems like my data is unsorted but I don’t see any documentation on how it should be sorted and glad to send the repo if you like…
Thanks much – Warren

2017-09-14 14:31:39.426976-0700 GoogleStockAPI[7040:2331198] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsorted data occurs in the collection. The only allowed SearchMode is SCIArraySearchMode_Exact'

*** First throw call stack:
(0x18a2c6fe0 0x188d28538 0x1013c9644 0x101422af0 0x1013fbdb0 0x101421b28 0x1013fb7c8 0x101398be8 0x101399084 0x10142dd04 0x1013effd0 0x1013a22dc 0x10140a47c 0x101419f04 0x1023f44fc 0x18d4d95dc 0x18d4d948c 0x18a533b9c 0x18a25d960 0x18a275ae4 0x18a275284 0x18a272d98 0x18a1a2da4 0x18bc0d074 0x19045dc9c 0x1000ceb1c 0x1891b159c)
libc++abi.dylib: terminating with uncaught exception of type NSException

I am getting my data for this chart from a live API and after I parse the JSON I populate it with this as
Date, Double, Double, Double, Double, and it looks like this –

Date OHLC: 2017-04-27 07:00:00 +0000 143.9225 144.16 143.31 143.79
Date OHLC: 2017-04-26 07:00:00 +0000 144.47 144.6 143.3762 143.68

Here is the function to render the series

fileprivate func getCandleRenderSeries(_ isReverse: Bool,
                                       upBodyBrush: SCISolidBrushStyle,
                                       upWickPen: SCISolidPenStyle,
                                       downBodyBrush: SCISolidBrushStyle,
                                       downWickPen: SCISolidPenStyle,
                                       count: Int) -> SCIFastCandlestickRenderableSeries {

    let ohlcDataSeries = SCIOhlcDataSeries(xType: .dateTime, yType: .double)

    ohlcDataSeries.acceptUnsortedData = true

    let items = self.dataFeed.lastPrice

    let dateFormatter = DateFormatter()

    dateFormatter.dateFormat = "yyyy-MM-dd"

    for i in 0..<(items.count) - 1 {

        let date:Date = items[i].date!)!

                               open: SCIGeneric(items[i].open!),
                               high: SCIGeneric(items[i].high!),
                               low: SCIGeneric(items[i].low!),
                               close: SCIGeneric(items[i].close!))

    let candleRendereSeries = SCIFastCandlestickRenderableSeries()
    candleRendereSeries.dataSeries = ohlcDataSeries
    candleRendereSeries.fillUpBrushStyle = upBodyBrush
    candleRendereSeries.fillDownBrushStyle = downBodyBrush
    candleRendereSeries.strokeUpStyle = upWickPen
    candleRendereSeries.strokeDownStyle = downWickPen

    return candleRendereSeries
Showing 12 results
This template supports the sidebar's widgets. Add one or use Full Width layout.