iOS 当绘制超过 3 个数据集时,图表不显示值标签

iOS Charts does not show value labels when more than 3 data sets are plotted

我在 Objective-C 中使用 iOS 的图表框架。

我正在尝试在具有 4 个数据集的图表上绘制数据值标签(y 值)。如果我的图表上有 1、2 或 3 个数据集,标签值显示得很好。如果我添加第 4 个数据集,标签值根本不会显示。

我正在为每个数据集使用 UIColor 对象的 NSMutableArray。对于每个数据点,当我不想显示标签时,我将标签颜色设置为 [UIColor clearColor],当我希望它显示时,我将其设置为 [UIColor whiteColor]。

NSMutableArray *labelColors = [[NSMutableArray alloc] init];

for (NSDictionary *data in dataArray )
{
    if (condition)
    {
        [labelColors addObject:UIColor.whiteColor];
    }
    else
    {
        [labelColors addObject:UIColor.clearColor];
    }
}
    dataSet.valueColors = labelColors;

同样,如果我在 X 轴上绘制 1、2 或 3 个数据集,此技术工作正常,但如果我绘制第 4 个数据集,它会完全停止绘制标签。我设置图表的方式是,左侧 Y 轴上有两个数据集,右侧 Y 轴上有两个数据集。

有人知道为什么我的标签没有显示吗?

我在第一次设置图表的 viewDidLoad 中用一行解决了这个问题。

_chartView.maxVisibleCount = 500;

我想在添加第 4 个数据集后,我得到的值超过了 maxVisibleCount 的默认值(不管是什么),当发生这种情况时,无论其他设置如何,都不会绘制数据标签。

我在修改我的数据集的 drawValuesEnabled 字段时发现了这一点,在自动完成文本中它说 "this value is ignored when maxVisibleCount is reached"。