|
@@ -806,7 +806,15 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer
|
|
|
|
|
|
if dataSet.isStacked, let vals = e.yValues
|
|
if dataSet.isStacked, let vals = e.yValues
|
|
{
|
|
{
|
|
- let stackLabel = dataSet.stackLabels[idx % stackSize]
|
|
|
|
|
|
+ let labelCount = min(dataSet.colors.count, stackSize)
|
|
|
|
+
|
|
|
|
+ let stackLabel: String?
|
|
|
|
+ if (dataSet.stackLabels.count > 0 && labelCount > 0) {
|
|
|
|
+ let labelIndex = idx % labelCount
|
|
|
|
+ stackLabel = dataSet.stackLabels.indices.contains(labelIndex) ? dataSet.stackLabels[labelIndex] : nil
|
|
|
|
+ } else {
|
|
|
|
+ stackLabel = nil
|
|
|
|
+ }
|
|
|
|
|
|
elementValueText = dataSet.valueFormatter?.stringForValue(
|
|
elementValueText = dataSet.valueFormatter?.stringForValue(
|
|
vals[idx % stackSize],
|
|
vals[idx % stackSize],
|
|
@@ -814,7 +822,11 @@ open class BarChartRenderer: BarLineScatterCandleBubbleRenderer
|
|
dataSetIndex: dataSetIndex,
|
|
dataSetIndex: dataSetIndex,
|
|
viewPortHandler: viewPortHandler) ?? "\(e.y)"
|
|
viewPortHandler: viewPortHandler) ?? "\(e.y)"
|
|
|
|
|
|
- elementValueText = stackLabel + " \(elementValueText)"
|
|
|
|
|
|
+ if let stackLabel = stackLabel {
|
|
|
|
+ elementValueText = stackLabel + " \(elementValueText)"
|
|
|
|
+ } else {
|
|
|
|
+ elementValueText = "\(elementValueText)"
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
let dataSetCount = dataProvider.barData?.dataSetCount ?? -1
|
|
let dataSetCount = dataProvider.barData?.dataSetCount ?? -1
|