Я устанавливаю свойство majorTickLocations для yAxis с некоторыми предопределенными значениями диапазонов.Я также устанавливаю свойство alternatingBandFills yAxis для цветового кодирования этих диапазонов.Код, который я использую, выглядит следующим образом:
NSSet *majorTickLocations = [NSSet setWithObjects:
[NSDecimalNumber numberWithDouble:lowerRedRangeFrom],
[NSDecimalNumber numberWithDouble:lowerOrangeRangeFrom],
[NSDecimalNumber numberWithDouble:greenRangeFrom],
[NSDecimalNumber numberWithDouble:upperOrangeRangeFrom],
[NSDecimalNumber numberWithDouble:upperRedRangeFrom],
[NSDecimalNumber numberWithDouble:upperRedRangeTo],
nil];
yAxis.majorTickLocations = majorTickLocations;
yAxis.alternatingBandFills = [NSArray arrayWithObjects:
[CPTColor redColor],
[CPTColor orangeColor],
[CPTColor greenColor],
[CPTColor orangeColor],
[CPTColor redColor], nil];
Все хорошо, кроме одной конкретной проблемы:
Некоторые диапазоны данных, которые я использую, имеют lowerRedRangeFrom = lowerOrangeRangeFrom.Что произойдет, если это так, отображаются только 3 диапазона с цветовой кодировкой, что нормально, и это ожидаемое поведение.Поскольку массив alternatingBandFills определяется в следующем порядке -> красный, оранжевый, зеленый, оранжевый, красный, показанные цвета являются красно-оранжево-зелеными.Это вполне нормально и ожидаемо.
Однако в некоторых наборах данных, которые имеют ту же логику, что и другие (например, lowerRedRangeFrom = lowerOrangeRangeFrom), чередующиесяBandFills графика отображаются как -> orange-green-orange,
Может кто-нибудь объяснить мне, почему это так?Путаница возникает из-за того, что для данного набора данных нет проблем, а для других есть (хотя пропорции одинаковы).Я знаю, что Core-Plot будет циклически проходить по массиву alternatinBandFills и отображать цвета, но по некоторым причинам иногда он начинает циклически работать с индексом = 1, а не с начала в массиве.
Спасибо,
Петар