We have been using ShinobiCharts on an iOS scientific app for years. There are two series and we are using vertical line annotations to mark particular events along the series. Both
gestureDoubleTapResetsZoomare set to YES, as is
loadDataInBackground, and we are using arrays to cache the data points and
dataPointsForSeriesAtIndex since there are routinely thousands of data points.
Everything is working pretty well. Zooming and panning are smooth. The issue is when you zoom in all the way (down to seconds on the time axis (x)) then double tap to reset zoom, CPU usage goes to 100% and the app frequently locks, even overheating devices in some cases.
This only occurs on one of the two places we are using the graph, which is one that is receiving new readings. In a log review, the double tap to reset zoom works smoothly, but it’s also a smaller view. I tried delaying accepting new readings for up to several seconds following a zoom reset, and that didn’t help. Instruments suggests ShinobiCharts spending a lot of time laying out subviews.
Any ideas of optimizations we can try? It’s blocking release of an updated version of the app, as it is.
I should note we are using storyboards and size classes, in case that is relevant.