diff --git a/Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift b/Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift index 2f4751d1aa..3478c30745 100644 --- a/Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift +++ b/Source/Charts/Renderers/BarLineScatterCandleBubbleRenderer.swift @@ -66,7 +66,9 @@ open class BarLineScatterCandleBubbleRenderer: NSObject, DataRenderer open func isDrawingValuesAllowed(dataProvider: ChartDataProvider?) -> Bool { guard let data = dataProvider?.data else { return false } - return data.entryCount < Int(CGFloat(dataProvider?.maxVisibleCount ?? 0) * viewPortHandler.scaleX) + let count = CGFloat(dataProvider?.maxVisibleCount ?? 0) * viewPortHandler.scaleX + guard count < CGFloat.infinity, !count.isNaN else { return false } + return data.entryCount < Int(count) } /// Class representing the bounds of the current viewport in terms of indices in the values array of a DataSet. diff --git a/Source/Charts/Renderers/CombinedChartRenderer.swift b/Source/Charts/Renderers/CombinedChartRenderer.swift index de6121df63..77d114c427 100644 --- a/Source/Charts/Renderers/CombinedChartRenderer.swift +++ b/Source/Charts/Renderers/CombinedChartRenderer.swift @@ -162,7 +162,9 @@ open class CombinedChartRenderer: NSObject, DataRenderer open func isDrawingValuesAllowed(dataProvider: ChartDataProvider?) -> Bool { guard let data = dataProvider?.data else { return false } - return data.entryCount < Int(CGFloat(dataProvider?.maxVisibleCount ?? 0) * viewPortHandler.scaleX) + let count = CGFloat(dataProvider?.maxVisibleCount ?? 0) * viewPortHandler.scaleX + guard count < CGFloat.infinity, !count.isNaN else { return false } + return data.entryCount < Int(count) } /// All sub-renderers. diff --git a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift index d2fed814f3..c9a22533e7 100644 --- a/Source/Charts/Renderers/HorizontalBarChartRenderer.swift +++ b/Source/Charts/Renderers/HorizontalBarChartRenderer.swift @@ -614,9 +614,10 @@ open class HorizontalBarChartRenderer: BarChartRenderer open override func isDrawingValuesAllowed(dataProvider: ChartDataProvider?) -> Bool { - guard let data = dataProvider?.data - else { return false } - return data.entryCount < Int(CGFloat(dataProvider?.maxVisibleCount ?? 0) * self.viewPortHandler.scaleY) + guard let data = dataProvider?.data else { return false } + let count = CGFloat(dataProvider?.maxVisibleCount ?? 0) * viewPortHandler.scaleX + guard count < CGFloat.infinity, !count.isNaN else { return false } + return data.entryCount < Int(count) } /// Sets the drawing position of the highlight object based on the riven bar-rect. diff --git a/Source/Charts/Renderers/PieChartRenderer.swift b/Source/Charts/Renderers/PieChartRenderer.swift index 18f571bc79..d1307c1cf6 100644 --- a/Source/Charts/Renderers/PieChartRenderer.swift +++ b/Source/Charts/Renderers/PieChartRenderer.swift @@ -589,7 +589,9 @@ open class PieChartRenderer: NSObject, DataRenderer open func isDrawingValuesAllowed(dataProvider: ChartDataProvider?) -> Bool { guard let data = dataProvider?.data else { return false } - return data.entryCount < Int(CGFloat(dataProvider?.maxVisibleCount ?? 0) * viewPortHandler.scaleX) + let count = CGFloat(dataProvider?.maxVisibleCount ?? 0) * viewPortHandler.scaleX + guard count < CGFloat.infinity, !count.isNaN else { return false } + return data.entryCount < Int(count) } /// draws the hole in the center of the chart and the transparent circle / hole