Pre loader

Category: iOS

Welcome to the SciChart Forums!

  • Please read our Question Asking Guidelines for how to format a good question
  • Some reputation is required to post answers. Get up-voted to avoid the spam filter!
  • We welcome community answers and upvotes. Every Q&A improves SciChart for everyone

WPF Forums | JavaScript Forums | Android Forums | iOS Forums

1 vote
7k views

iPhone 6, OS 12.4.3., X-axis, Y-axis texts are shown in inverted text. We can see this issue if we download the AppStore version of SciChart app

1 vote
6k views

We are having an issue which is preventing us from upgrading to a newer version of Xamarin iOS SciChart.

With Xamarin iOS SciChart v3, the UpdateTicks method from SCINumericTickProvider cannot be overridden, because it doesn’t exist (at least not public).

In Xamarin Android SciChart v3, it works with overriding the UpdateTicks method.

In Xamarin iOS SciChart v2, it was possible to customize the ticks by overriding the method GetMajorTicksFromAxis from the class SCINumericTickProvider.

It looks like the types generation from iOS to Xamarin C# has missed to correctly export the UpdateTicks method as public overridable. (Because the docs say it should be there and it is there on Android Xamarin.)

  • Jens Stolz asked 4 years ago
  • last active 4 years ago
0 votes
6k views

How would I go about doing this in swift?

0 votes
8k views

I am creating point data series using SCIXyScatterRenderableSeries.
I need to tap on specific data points and display pop over or some view on top of it. Pop over provides information regarding that point.

How can I implement that in iOS.

1 vote
5k views

I’m try to generate a UIImage from a SCIChartSurface into a graphic context using the code below from a view that is not displayed on the screen. The image created is pure black, which indicates it did not draw. If I display the graph in a view on the devices screen, the graph draws correctly.

UIGraphicsBeginImageContextWithOptions(self.chart.bounds.size, NO, 0.0);
[self.chart drawViewHierarchyInRect:self.chart.bounds afterScreenUpdates:YES];
UIImage *chartImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Are there any special steps that are needed to draw into a graphic context?

0 votes
8k views

I was testing my charts on a simulator and when I naved away and then back to the chart screen the Simulator’s chart was totally black screen; I could move the mouse over the points and the popouts would occur; and your license notice showed in the center of the chart. So it was almost like it thought all the drawing for the chart itself needed to be black on black.

It was always broken on the 2nd or later chart. Restarting the app fixed it. I tried removing all custom settings, and calling the invalidate; and nothing caused it to redraw correctly… Fortunately, when deploying to real devices everything worked correctly. Is this an expected side effect of testing on a simulator, or is their something that I can do to force a hard refresh of the chart…

FYI: The additional debug diagnostics don’t seem to do anything on a simulator, or at least I couldn’t find anywhere it was logged.

0 votes
4k views

Hey everyone, my team currently has Scicharts for WPF set up and functioning the way we want it too.

We are moving to Xamarin and have tested Scicharts in a Xamarin.Forms project working for Android/iOS and Windows WPF.
The next step was to install Visual Studios for Mac, and setup a new Xamarin.Forms project and pull the code from the windows version of our Xamarin.Forms project. For windows we use a custom renderer to get the scicharts to work for all platforms available on the windows version. For Mac, we are trying to get a custom renderer set up to load the swift version of the Scicharts for Mac. It’s not going so well.

Can anyone provide details on if it’s possible to get a xaramarin.forms project to load the scicharts for mac framework?

Thanks

NOTE** I picked iOS because for some reason MacOS wasn’t in the list of platforms

0 votes
3k views

Hello,

We need to add a label with the value of the yAxis on top of all Point Markers. There is an example on WPF, but found nothing on iOS.

How can we achieve that?

0 votes
5k views

Hi,

I am using SciChart_iOS_SDK_3.0.0.5074 with Swift 5.

I want to show string type on X-axis. I am using below code snippet.

class YearsLabelProvider: SCILabelProviderBase<SCINumericAxis> {

   var xLabels: [String] = ["Test", "Test", "Test", "Test", "Test", "Test", "Test", "Test",     "Test", "Test", "Test", "Test", "Test", "Test"]

   func update(_ axis: ISCIAxisCore!) { }

   override func formatLabel(_ dataValue: ISCIComparable!) -> ISCIString! {
        let index = Int(dataValue.toDouble())
        return NSString(string: index >= 0 && index < xLabels.count ? xLabels[index] : "")
    }

    override func formatCursorLabel(_ dataValue: ISCIComparable!) -> ISCIString! {
        let index = Int(dataValue.toDouble())

        var result: String?

        if (index >= 0 && index < xLabels.count) {
            result = xLabels[index]
        }
        return NSString(string: result!)
    }
}

Application crashes while loading with the following error –

” *** Terminating app due to uncaught exception ‘Initializer not allowed Exception’, reason: ‘Parameterless initializer of Chart.YearsLabelProvider class shouldn’t be used. Please use one of the designated initializers instead'”

Kindly help us resolving this issue since this is a showstopper issue.
I would also like to know about what data SCIXyDataSeries accepts when we are working with strings.

0 votes
6k views

There are no simple macOS tutorial projects, so I transplant ios “Tutorial 01 Create Simple 2D Chart” to macOS one. (Attached file.)

Build and Run successfully. But no appear the coded chart. It seems that only SCIChartSurface is being displayed. (without axis and line series)
I enabled SciChart Console Debugging and got like this.

2021-09-17 20:48:06.077950+0900 StoryboardTest[75014:920684] [INFO] - [SCIAxisBase] isSuspended = YES. Ignoring `invalidateElement:` call
2021-09-17 20:48:06.078006+0900 StoryboardTest[75014:920684] [INFO] - [SciChartSurfaceBase] IsSuspended=YES. Ignoring `invalidateElement:` call

Why doesn’t the chart show up? Would you mind giving me some advice?

P.S.
It seems that the file was not attached properly.
Please download the file from here.
https://drive.google.com/file/d/1YfJIf0G14QOxA0fzmEQXyAEbPrfMx4CU/view?usp=sharing

0 votes
9k views

Hi,

I’m trying to limit the x-axis panning up to an annotation that I’ve drawn on the graph. This annotation can be beyond the current data’s position (i.e. data’s timestamp is at 5/4/2017 11:00:00, annotation’s position is at 5/4/2017 16:00:00). Is there a method, or any way that I can use to limit the x-axis panning up to the annotation’s position instead of limiting it to the data series’ max X?

Regards.

0 votes
5k views

Hello,

I would like to add a corner radius (to give rounded corners) to the SciChart rollover tooltip in iOS. I saw that there is a “tooltipCornerRadius” property in “SCITooltipModifierStyleProtocol”, but I am having trouble figuring out how to use this. Can someone point me in the right direction?

Thank you.

  • C Bolton asked 2 years ago
  • last active 2 years ago
0 votes
5k views

Hey everyone,

SCIThemeColorProvider has styling properties for individual types of chart elements (annotations, axes, grid lines, renderable series). How can multiple colours be assigned to individual RenderableSeries in case there are more than one?

For example, a stacked column chart will surely have more that one data series and it appears that current implementation of SCIThemeColorProvider doesn’t take this into account from architectural point of view.

Am I missing something?

Thanks,
Igor

  • Igor Peric asked 7 years ago
  • last active 7 years ago
0 votes
7k views

I am trying to add a legend to my chart similar to how is done in the LegendChartView.swift code in the sample app. However the legend does not show and I get several NSLayoutConstraints conflicts such as this one:

[LayoutConstraints] Unable to simultaneously satisfy constraints.   Probably at least one of the constraints in the following list is one you don't want.   Try this:       (1) look at each constraint and try to figure out which you don't expect;       (2) find the code that added the unwanted constraint or constraints and fix it.  (
    "<NSLayoutConstraint:0x283528af0 UIButton:0x13c52d840.height == 25   (active)>",
    "<NSLayoutConstraint:0x2835285f0 UIButton:0x13c52d840.bottom == UIView:0x13c545060.bottom - 4   (active)>",
    "<NSLayoutConstraint:0x2835285a0 V:|-(4)-[UIButton:0x13c52d840]   (active, names: '|':UIView:0x13c545060 )>",
    "<NSLayoutConstraint:0x283528b40 'UIIBSystemGenerated' SCIDefaultLegendItem:0x13c543f90.top == UIView:0x13c545060.top   (active)>",
    "<NSLayoutConstraint:0x283528b90 'UIIBSystemGenerated' V:[UIView:0x13c545060]-(0)-|   (active, names: '|':SCIDefaultLegendItem:0x13c543f90 )>",
    "<NSLayoutConstraint:0x283529c20 'UIView-Encapsulated-Layout-Height' SCIDefaultLegendItem:0x13c543f90.height == 0   (active)>" )

Will attempt to recover by breaking constraint  <NSLayoutConstraint:0x283528af0 UIButton:0x13c52d840.height == 25   (active)>

The internal SCIDefaultLegendItems look to keep setting their width and height to 0 which causes conflicts with the underlying UIButton and UILabel components.

Any thoughts on how to get around this? My chart has four series. I have seen the article on drawing the legend outside the chart surface area however I do not want to do that.

Thank you!

  • Brad Taber asked 4 years ago
  • last active 4 years ago
1 vote
5k views

Can SciChart be used in UITableviewCell? Is it possible to use Software rendering on iOS?

The OpenGL/Metal charts are great, but I suspect Software rendering would be a better for displaying data in UITableViewCells. There are many mobile apps out there that use charts in tableviews and I’d love to be able to use SciChart here too.

0 votes
0 answers
3k views

When I ran the sample “iOS & macOS Audio, Radio frequency and Spectrum Analyzer” of “SciChart.iOS.Examples-SciChart_v4_Release”,
HeatMap graphs are not displayed on 5th generation iPads.

For iPads of generations higher than the 5th generation, the HeatMap graph is displayed.
Does SchiCharts_v4 not support 5th generation iPads?

The environment is as follows.
IOS 15.2

1 vote
0 answers
4k views

I wan to have a view that is outside of the chart that is updated whenever the chart modifier selection is changed. Is there a way to get notified when the selection changes?

Also, is it possible to get rid of the data views. I guess I could just add a custom view to the rollover modifier that is empty?

What I want to achieve is that when the user is using the rollover modifier to view datapoint the values for that datapoint is shown above the chart. It should also be possible to drill down by clicking on this information.

0 votes
5k views

Hello,

The problem is how to sign the X-axis (the time axis).
How can I change the date and time format on the x axis?
Is this possible when I use the SCICategoryDateTimeAxis?
We use the code from example to set the time format

1 vote
12k views

When I embed my view controller in a navigation controller the top of the chart is hidden behind the navigation bar. So I went to the storyboard and found the view controller attributes section called “extend edges” and turned off the option called “under top bars”. This fixes the top of the chart. Now the bottom of the chart drops off the bottom of the screen. The x-axis is completely missing. Does SciChart support this case?

0 votes
0 answers
12k views

iOS 11.2 with xCode 9.2

I have a chart with two data series and a legend. The chart lives in a view controller that is embedded in a navigation controller. I configured the navigation bar to hide itself when the phone it tilted into landscape mode: navigationController.hidesBarsWhenVerticallyCompact = true

When I tilt the phone the navigation bar is hidden as expected. However when I tap on the chart legend to turn off one of the data series I see the navigation bar re-appears. Screen shots attached.

0 votes
7k views

How can I create CustomCategoryLabelProvider?
How can i do this?
This example does not work for me

0 votes
9k views

Hi

I am developing a Xamarin iOS application and I’m using a SCIPieChartSurface. I can create the chart and set its values, but is is not possible to auto-update the donut with new data.
I am trying to update the value by doing:

myDonut.MyPieSegment.Value = newValue;

But nothing happends…

I heard it was a bug in the API for Android a month ago, is this similar? Or am I doing something wrong?
Thanks in advance!

Best regards
Jonas

0 votes
13k views

Hi,

I’ve been looking through ways to have to y-Axis scale for really small changes/values.

For example, I’m attempting to plot 10 values between 0.99300 to 0.99400, and the changes between points can vary between 0.001 to 0.0001 or so (basically, really small changes)

However, my y-Axis seems to always start at 0 and the y-Axis major ticks are always at most a 0.1 difference, making the graph look flat.

I’d like to achieve the following:
– Scale to the smallest value i can scale to.
– Have my y-Axis to not necessarily start at 0.

I’ve tried the following:

Setting up y-Axis:

    self.yAxis = [SCINumericAxis new];
    [self.yAxis setStyle:axisStyle];
    self.yAxis.axisId = @"yAxis";
    [self.yAxis setGrowBy:[[SCIDoubleRange alloc]initWithMin:SCIGeneric(0) Max:SCIGeneric(0.1)]];
    [self.yAxis setAutoRange:SCIAutoRange_Always];
    [self.chartSurface attachAxis:self.yAxis IsXAxis:NO];

Regards.

0 votes
4k views

So for both SCIZoomPanModifier and SCIXAxisDragModifier you can set a clip mode, that will cause the graph to not zoom in if you try to scroll past the edges.

This is not possible for the y-axis however, so everytime anyone scrolls up or down to far, the graph zooms in, which is not useful to anyone ever

Is there any way to change this behaviour at all?

Thanks in advance

0 votes
5k views

I have a Xamarin forms Project with one page of my app containing a SciChart. On that page, I have a RelativeLayout.

In the code behind for that page, I pass my layout to a dependency service method which adds the SciChartSurface to it depending on the platform. This has tested well on various Android platforms.

For iOS, I’ve tested on a device running iOS 9 and simulators running 9, 10, and 11. And any run less than 11 does not display. The view is simply blank.

Here’s the code where I add the SciChartSurface to the view.. I’m still new to SciChart, so I’m not sure if I’m doing everything totally correct.

public void renderSciChart(Xamarin.Forms.RelativeLayout masterLayout, Xamarin.Forms.RelativeLayout topLayout)
    {


        SciChart.iOS.Charting.SCIChartSurface Surface = new SciChart.iOS.Charting.SCIChartSurface();
        Surface.TranslatesAutoresizingMaskIntoConstraints = true;
        SciChart.iOS.Charting.XyDataSeries<double, double> dataSeries = new SciChart.iOS.Charting.XyDataSeries<double, double>();
        //generateDataPoints(dataSeries);
        var xAxis = new SciChart.iOS.Charting.SCINumericAxis{/*GrowBy = new SciChart.iOS.Charting.SCIDoubleRange(0.1, 0.1), VisibleRange = new SciChart.iOS.Charting.SCIDoubleRange(1.1,2.7)*/};
        var yAxis = new SciChart.iOS.Charting.SCINumericAxis();
        var renderableSeries = new SciChart.iOS.Charting.SCIFastLineRenderableSeries { DataSeries = dataSeries, StrokeStyle = new SciChart.iOS.Charting.SCISolidPenStyle(0xFF279B27, 2f) };
        using (Surface.SuspendUpdates())
        {
            Surface.XAxes.Add(xAxis);
            Surface.YAxes.Add(yAxis);
            Surface.RenderableSeries.Add(renderableSeries);
            Surface.ChartModifiers = new SciChart.iOS.Charting.SCIChartModifierCollection
            {
                new SciChart.iOS.Charting.SCIZoomPanModifier(),
                new SciChart.iOS.Charting.SCIPinchZoomModifier(),
                new SciChart.iOS.Charting.SCIZoomExtentsModifier(),
            };
        }

        masterLayout.Children.Add(Surface.ToView(),
        widthConstraint: Constraint.RelativeToParent(parent => parent.Width),
        heightConstraint: Constraint.RelativeToParent(parent => parent.Height * 0.5),
        yConstraint: Constraint.RelativeToView(topLayout, (RelativeLayout, element) => element.Height));
    }

Additionally, here’s a Screenshot of the same code running on a simulator with iOS 10 (Left) and iOS 11 (Right).
10 vs 11

1 vote
6k views

I’m updating from Xamarin iOS SciChart v2 to v3 and just hit the issue that i can not use a custom TickProvider because there is no overridable UpdateTicks method.

I could not find any TickProvider code in the v3 Examples so the docs are my only source:
https://www.scichart.com/documentation/ios/current/axis-ticks—tickprovider-and-deltacalculator-api.html

According to the docs, I should override SCINumericTickProvider or SCIDateTickProvider

class CustomNumericTickProvider: SCINumericTickProvider
{
    public override void UpdateTicks(SCIDoubleValues minorTicks, SCIDoubleValues majorTicks)
    {
       //...
    }
}

But there is no UpdateTicks method to override.
I tried to override the Update() method instead:

public override void Update()
{
    Ticks.Clear();

    Ticks.MajorTicks.Add(5);
    //...
}

But that is just causing a freeze/crash at runtime.

It’s worth noting that it works well on Android because there is a UpdateTicks method to override.

What should I do?

  • Wil O asked 4 years ago
  • last active 4 years ago
0 votes
3k views

Hi,

We have an issue where the graph grid lines and tick markers do not show on iOS 10. Everything works on iOS 11 and up. Any idea why this is happening?

1 vote
4k views

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:
RNSciCandlestickChart.swift:
1) 335th line: Editor placeholder in source file
dates.add(date!))
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)
AnnotationDragListener.swift:
1) 4th line: Cannot find type ‘SCIAnnotationDragListener’ in scope
class AnnotationDragListener: SCIAnnotationDragListener
RNSciLineChart.swift:
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?

1 vote
12k views

Hello!

Please take a look at the attached screenshot first.

I have a chart configured to draw real-time trading data. X axis type is DateTime. Y axis type is Float. I need to draw vertical expiration time line.

I tried to draw coordinate relative line annotation as follows:

var date: NSDate = NSDate()

let lineAnnotation = SCILineAnnotation()
lineAnnotation.xAxisId = self.axisXId
lineAnnotation.yAxisId = self.axisYId
lineAnnotation.coordMode = .SCIAnnotationCoord_RelativeX
lineAnnotation.style.linePen = SCIPenSolid(color: Style.Chart.ExpirationDateLine.Color, width: Style.Chart.ExpirationDateLine.Width
lineAnnotation.xStart = SCI_constructGenericTypeWithInfo(&date, .DateTime)
lineAnnotation.xEnd = SCI_constructGenericTypeWithInfo(&date, .DateT            

self.chartSurface.annotation = lineAnnotation
self.chartSurface.invalidateElement()

I tried to play with different coordMode values. Line does not appear. Could you help me with this task?

0 votes
3k views

Hi, I’ve found that there is no example of using SciChart in SwiftUI, the swift examples are using storyboard.

I’ve tried that, using SciChart in SwiftUI, and it worked. But I have some confusions about axis update and data update.

in SwiftUI, first I create a chartview struct as NSViewRepresentable, and in func makeNSView(context: Context) -> SCIChartSurface{} to initialize the chartview as any supported SciChart view type.

second, in func updateNSView(_ nsView: SCIChartSurface, context: Context){} to update the data and axis.

When updating axis(like visiablerange), every time I need call nsView.xAxes.clear() to remove axis first and then add axis again.

When updating data, every time I need to call nsView.renderableSeries.clear() to clear current plot data first and then call nsView.renderableSeries.add() to update the data.

My confusion is that is this the right way to do that? It seems not quite efficient.

  • Keyu Yan asked 2 years ago
  • last active 2 years ago
0 votes
4k views

The website has changed recently. I do not see any way to locate my existing support tickets. When I click on Developers–>Support it only gives me the option to create a new ticket.

0 votes
8k views

I cannot get SCILinearGradientBrushStyle working on a donut chart. Only radial gradients work

Here is my code sample:

let segment = SCIPieSegment()
segment.fillStyle = SCILinearGradientBrushStyle(colorCodeStart: 0xff007aff, finish: 0x4D007aff, direction: .horizontal)
segment.value = 100.0
segment.title = "Segment"
donutSeries.segments.add(segment)

The segment just renders a flat color

0 votes
0 answers
7k views

Hi, guys

Is there possibility to show CursorModifier by simply changing switch state?

According to custom tooltip behaviour it is possible for SCITooltipModifier. And it’s work at v 2.0.0.xxxx

So can you provide a code with redefinitions of private Api methods for this situation?

UDP: What is the best practice to customize tooltip’s data view?

Best regards,
Sushynski Andrei

0 votes
2k views

Hi,

I have a very simple iOS project in XCode 13 which uses Swift. The project has a tab bar controller with two tabs. The first tab brings up a sample home screen and the second tab initializes a blank SciChart graph.

I want to eventually be able to sometimes change what data is shown on the graph (via Bluetooth), and therefore I want to run my graph code every time the tab for the graph is selected. I put all my code for SciChart inside:

override func viewWillAppear(_ animated: Bool)

and this almost works fine, but declaring

let surface = SCIChartSurface() inside of override func viewWillAppear(_ animated: Bool)

seems to be causing some sort of memory leak. Switching between tabs often causes my app to crash and XCode reports the following error message: “Terminated due to memory issue”

Is there a better way to initialize my graph to prevent this memory leak? Or is there way to flush the “surface” variable from memory when transitioning between tabs to prevent this memory issue from occurring?

My small sample project is available here which demonstrates the memory leak when switching between the home screen tab and graph tab: https://drive.google.com/file/d/1mz88R3kKvoPqSGxFzohoHGDkseSwgHPh/view?usp=sharing

Any help greatly appreciated, thanks!

2 votes
9k views

From your documentation:

4.9 Annotations

SciChart features a rich Annotations API, that allows you to place UIKit UIElements over the chart.
SciChat provides a number of built-in annotations, but you can also create your own.

SCIBoxAnnotation, SCILineAnnotation and SCITextAnnotation are cool, but sometimes it’s not enough.

Is it possible to render UIView on the chart (at least UIImage)?
Is it possible to draw dashed line annotation?
Could you provide an example of creating custom annotation class?

0 votes
3k views

Hello,

I was overriding the performZoom(at mousePoint: CGPoint, xValue: Double, yValue: Double) method of SCIPinchZoomModifier but it is not accessible anymore.

My Code:

import Foundation
import SciChart

public class FixedToCenterPinchZoomModifier : SCIPinchZoomModifier {

override func performZoom(at mousePoint: CGPoint, xValue: Double, yValue: Double) {
    let middle = CGPoint(x: parentSurface?.frame.midX ?? 0,
                         y: parentSurface?.frame.midY ?? 0)
    super.performZoom(at: middle, xValue: xValue, yValue: yValue)
}

}

I get the error: Method does not override any method from its superclass

Is there a way to access the protected method?

0 votes
7k views

Good day guys. I have download SciChart_iOS_SDK_4.2.0.5533 on Macbook M1. And try to integrate ios-arm64_armv7 verions to my project. I have added SciChart.xcframework to frameworks in Xcode 12.4. But the build is failed with a few errors:

  1. unable to load standard library for target arm-64-apple-ios9.0
  2. Failed to build module ‘SciChart’ from its module interface, it may have been damaged or it may have triggered a bug in Swift compiler when it was produced.

Can you tell me please did I use the right version of SciChart.xcframework for apple silicone? And how to solve this errors?

0 votes
4k views

I’m tested on iPhone 8 (iOS 13.5.1) and iPad (iPadOS 13.5.1). On iPad the graph always works great but on iPhone sooner or later it always fails.

The exception is always “Thread 1: EXC_BAD_ACCESS (code=1, address=0x11d927ffc)” in the application main:

int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); <–
}
}

in the task stack:

SciChart`XValuesProviderWrapper<int>::GetDoubleValue:
0x103b530e0 <+0>:  ldr    x8, [x0, #0x8]
  0x103b530e4 <+4>:  ldr    w8, [x8, w1, sxtw #2]   <--
0x103b530e8 <+8>:  scvtf  d0, w8
0x103b530ec <+12>: ret

The truth is, I have no idea what’s going on. .. Please, anyone know what might be happening?

Thank you very much!

Due to the app upgrade, the code is in objective-c. This is my initialization code:

- (void) loadSciChartSurface:(SCIChartSurface*)surface {
sciChartSurface = surface;
sciChartSurface.translatesAutoresizingMaskIntoConstraints = true;

// scroll
SCIZoomPanModifier *zoomPan = [SCIZoomPanModifier new];
zoomPan.receiveHandledEvents = true;
zoomPan.zoomExtentsY = false;
zoomPan.direction = SCIDirection2D_XDirection;
[sciChartSurface.chartModifiers add:zoomPan];

// zoom
SCIPinchZoomModifier *pinchZoomModifier = [SCIPinchZoomModifier new];
pinchZoomModifier.direction = SCIDirection2D_XDirection;
pinchZoomModifier.scaleFactor = 1.5;
[sciChartSurface.chartModifiers add:pinchZoomModifier];

// series
rSeries = [SCIFastLineRenderableSeries new];
xAxis = [SCINumericAxis new];
yAxis = [SCINumericAxis new];

xAxis.visibleRangeChangeListener = ^(id<ISCIAxis> axis, id<ISCIRange> oldRange, id<ISCIRange> newRange, BOOL isAnimating) {

    int min = newRange.minAsDouble;
    int max = newRange.maxAsDouble;
    int center = (min + max) / 2;

    if (center <= 0) {
        axis.visibleRange.min = @(0.0 - xHalfWidth);
        axis.visibleRange.max = @(xWidth - xHalfWidth);
    } else if (center >= dataSamples) {
        axis.visibleRange.min = @(dataSamples - xHalfWidth);
        axis.visibleRange.max = @(dataSamples + xHalfWidth);
    } else {
        // xWith is updated to keep the zoom factor in limits, when (center <= 0) or (center >= dataSamples)
        xWidth = max - min;
        xHalfWidth = xWidth / 2;
    }
};

[SCIUpdateSuspender usingWithSuspendable:sciChartSurface withBlock:^{
    [sciChartSurface.xAxes add:xAxis];
    [sciChartSurface.yAxes add:yAxis];
    [sciChartSurface.renderableSeries add:rSeries];
    [SCIAnimations sweepSeries:rSeries duration:0.0 andEasingFunction:[SCICubicEase new]];
}];

dataSeries = [[SCIXyDataSeries alloc] initWithXType:SCIDataType_Int yType:SCIDataType_Short];

// x
xWidth = theFileFormat.mSampleRate * MIN_SECONDS_IN_GRID * 1;
xIndex = 0;
xHalfWidth = xWidth / 2;
xAxis.visibleRange = [[SCIDoubleRange alloc] initWithMin:0.0 max:xWidth];

// y
yAxis.visibleRange = [[SCIDoubleRange alloc] initWithMin:SHRT_MIN max:SHRT_MAX];

[self loadDefaultStyle];

}

1 vote
10k views

I want a transparent background of SCI Chart so that view below the chart are visible. I have tried various solutions but it is still turning out to be black. Below is my code for the same. Can anyone please help me out ? I am setting SCIChartSurface backgroundColor property to achieve it but it doesnt seem to work.

func initColumnChart() {

    let xAxis = SCINumericAxis()
    let yAxis = SCINumericAxis()
    //self.surface.xAxes.add(xAxis)
    //self.surface.yAxes.add(yAxis)
    self.surface.backgroundColor = UIColor.clear
    self.surface.isOpaque = false
    self.surface.renderableSeriesAreaFill = SCISolidBrushStyle(color: UIColor.clear)
    self.surface.renderableSeriesAreaBorder = SCISolidPenStyle(color: UIColor.clear, withThickness: 0)


    let xAxisGridBandBrush = SCISolidBrushStyle(color: UIColor.clear)
    xAxis.style.gridBandBrush = xAxisGridBandBrush

    xAxis.visibleRange = SCIDoubleRange(min: SCIGeneric(-0.6), max: SCIGeneric(8.0))
    xAxis.style.majorTickBrush = SCISolidPenStyle(color: UIColor.white, withThickness: 1)
    xAxis.style.majorTickSize = 5
    xAxis.autoTicks = false
    xAxis.majorDelta = SCIGeneric(1.0)
    xAxis.minorDelta = SCIGeneric(1.0)
    xAxis.labelProvider = UsageXLabelProvider()
    xAxis.style.labelStyle.color = UIColor.white
    xAxis.style.labelStyle.fontName = "Helvetica"
    xAxis.style.labelStyle.fontSize = 14
    xAxis.style.drawLabels = true
    xAxis.style.drawMajorGridLines = false
    xAxis.style.drawMinorGridLines = false
    xAxis.style.drawMajorTicks = true
    xAxis.style.drawMinorTicks = false
    xAxis.tickProvider = YAxisTickProvider(minorTicks: [], majorTicks: [0,1,2,3,4,5,6])



    let yAxisGridBandBrush = SCISolidBrushStyle(color: UIColor.clear)
    yAxis.style.gridBandBrush = yAxisGridBandBrush

    yAxis.style.labelStyle.color = UIColor.white
    yAxis.style.labelStyle.fontName = "Helvetica"
    yAxis.style.labelStyle.fontSize = 14
    yAxis.style.drawLabels = true
    yAxis.visibleRange = SCIDoubleRange(min: SCIGeneric(-1.0), max: SCIGeneric(65))
    yAxis.autoTicks = false
    yAxis.majorDelta = SCIGeneric(1.0)
    yAxis.minorDelta = SCIGeneric(0.2)
    yAxis.style.majorGridLineBrush = SCISolidPenStyle(color: UIColor.white, withThickness: 0.5, andStrokeDash: [5.0,6.0])
    // Style the Minor Gridlines on the YAxis (vertical lines)
    yAxis.style.minorGridLineBrush = SCISolidPenStyle(color: UIColor.white, withThickness: 0.5, andStrokeDash: [5.0, 6.0])
    yAxis.style.drawMajorGridLines = true
    yAxis.style.drawMinorGridLines = true
    yAxis.style.drawMajorTicks = false
    yAxis.style.drawMinorTicks = false
    yAxis.axisAlignment = .left
    //yAxis.labelProvider = DailyFlowrateLabelProvider()
    yAxis.tickProvider = YAxisTickProvider(minorTicks: [0,8,16,24,31,40,48,56], majorTicks: [0,31,62])

    let dataSeries = SCIXyDataSeries(xType: .float, yType: .float)
    dataSeries.appendRangeX([0,1,2,3,4,5,6], y: [52,40,15,48,25,36,20])

    let rSeries = SCIFastColumnRenderableSeries()
    rSeries.dataSeries = dataSeries
    rSeries.paletteProvider = BarsColorPalette()

    SCIUpdateSuspender.usingWithSuspendable(surface) {
        self.surface.xAxes.add(xAxis)
        self.surface.yAxes.add(yAxis)
        self.surface.renderableSeries.add(rSeries)
        //self.surface.chartModifiers = SCIChartModifierCollection(childModifiers: [SCIPinchZoomModifier(), SCIZoomExtentsModifier(), SCIRolloverModifier()])

        //rSeries.addAnimation(SCIWaveRenderableSeriesAnimation(duration: 3, curveAnimation: .easeOut))
    }
}
  • Ayush Jain asked 5 years ago
  • last active 5 years ago
0 votes
0 answers
2k views

Hi, I would like to always show the tick label of the start and end of the visible range. Are there any ways to implement this in iOS?

0 votes
6k views

I’m trying to make a chart with a “toggle function”.

The “toggle function” what i wanted to make is this.

  1. enter to UIViewController which Chart is in it
  2. before singleTap on a chart, a chart has zoomPanModifier, XAxisDragModifier,, etc
  3. after make singleTap on the chart, that chart has only CursorModifier.
  4. CursorModifier’s UI stays on chart without disappearing and i can move crossed line to specific point i want (just like what CursorModifier originally does)
  5. another single tap on chart would make a chart to have all other modifiers but CursorModifer.

What I have made successfully was 1,2,3,5 . not 4.

The way i was going to solve this problem was make fake touch event on Chart view and
snatch UIGestureRecognizer Event and let ChartView think they’re being touched till I give stop signal

But I heard that there is no more way to pass fake touch to UIView.

So I’m feeling difficulty on this problem…..

is there any easy way to solve this problem?

TL;DR;

I WANT TO MAKE CURSORMODIFIER’ UI STAYS ON A CHART!

+)
(lldb) po SciChartVersionNumber
0x3ff0000000000000

(lldb) po SciChartVersionString
0x474f525029232840

I wanted to know what version I’m using.. but i couldn’t know… what version am i using..?

0 votes
5k views

Hi.
I’m in process optimizing my app.
I’m using Objective-c.

I’d found some memory leaking issues and successfully fixed some of that.

A first issue was about ‘renderableSeries’ under ‘SCIChartSurfaceView’.
If you set class of UIView as ‘SCIChartSurfaceView’ in interface builder and make outlet without setting ‘strong’ or ‘weak’ in .m file,
It never get released automatically and will stay retained on memory.
For me, it caused about 90MB of memory leaking.
But I could solve this issue manually by putting -(void)clear; method of renderableSeries in viewWillDisappear method.

Another issue is about ‘SCIDateTimeDeltaCalculator’ and ‘SCINumericDeltaCalculator’.
It causes about 50MB of memory leaking.
But problem is, I couldn’t find neither where it’s been called nor how I release this manually.

I will be waiting for your answer.

Thanks.

+)
(lldb) po SciChartVersionNumber
0x3ff0000000000000

(lldb) po SciChartVersionString
0x474f525029232840

I wanted to know what version I’m using.. but i couldn’t know… what version am i using..?

1 vote
0 answers
5k views

I’m always getting an Unsorted Data Error when I’m running the Xamarin on iOS simulators, but it doesn’t happen if I run the app on a real iOS device. Does anyone have any idea what could the problem be?

Thanks,
Lazar Nikolov
[email protected]

1 vote
6k views

We have created graph for x axis string and y axis double. we have create object like this XyDataSeries<string,double> if run app getting exception error .

How to declare and how to use it .

0 votes
9k views

Hi,

Using the ZoomExtentsModifier on multiple axis used to work in an earlier version of SciCharts, but is broken in 4.3.0. I have two y-axes set up, left and right on my chart, with the right-hand-side just mirroring the left. When I double-tap to zoom to the x/y range of the graph, only the x range is modified. If I disable the change listener that mirrors the range change on the primary y axis, double tap works as expected, but my right hand side y-axis no longer mirrors the primary axis range. This is how I’ve set up the dual axes:

        let yAxis = SCINumericAxis()
        yAxis.axisTitle = "Acceleration (g)"
        yAxis.axisAlignment = .left
        yAxis.visibleRangeLimitMode = .minMax
        chart?.yAxes.add( yAxis )

        // Add an additional visible yAxis to the right without label
        let yAxisRight = SCINumericAxis()
        yAxisRight.axisAlignment = .right
        yAxisRight.axisId = "yAxisRight"
        chart?.yAxes.add( yAxisRight )

        // Sync values with left (primary) axis
        yAxis.visibleRangeChangeListener = { (axis, oldRange, newRange, isAnimating) in
            yAxisRight.visibleRange = newRange
        }

Commenting out the listener at the bottom fixes the ZoomExtentsModifier problem, but is obviously not a workable solution. Any help would be appreciated. Thanks

0 votes
10k views

So I want to draw multiple charts so is there any way I can have stacked yAxes like yAxis 2 should be drawn below yAxis1. I have gone through your example and there I got that we can add multiple surface but its becoming difficult for us to show a crosshair on all surfaces since we have a custom cross hair. Can you guide on same. Thanks in advance

1 vote
4k views

Hi,

I’d like to update the iOS version to the latest stable one (4.1.0), but after following the steps here: https://www.scichart.com/documentation/ios/current/integrating-scichart-libraries.html
Xcode keeps complaining:

framework not found SciChart.xcframework
clang: error: linker command failed with exit code 1

If I downgrade back to 3.1.1 everything works again. Any idea why the version 4.1.0 is not working? I’m using Pods to manage all dependencies.

0 votes
6k views

Hi, guys

I’m very sad because of you.

On my chart i’m added SCIZoomPanModifier with clip mode SCIClipMode_ClipAtExtents. And it well worked before i have updated lib to ‘2.0.1.1748’. Now it’s works the same way as SCIClipMode_StretchAtExtents. But i don’t want to zoom by scrolling at the edge of data.

Can you look at it and fix as soon as possible?

Best regards,
Sushynski Andrei

0 votes
0 answers
7k views

I have a simple chart using a an SCIDateTimeAxis to display dates along the x-axis. In some situations, the labels displayed along this x-axis are way too close together. Please see attached screenshot. I was wondering whether there is a property somewhere I can configure to increase the required “culling” space between labels? Or, failing that, what would I need to implement myself to somehow drop some of the displayed labels in order to make them more readable?

Showing 51 - 100 of 314 results