Кто-нибудь разобрался, как вручную добавлять метки в график Core-Plot (iPhone)?
-
21-09-2019 - |
Вопрос
У меня есть простая гистограмма, созданная для моего приложения iPhone, однако я хочу вручную добавить метки по оси x.Кто-нибудь разработал способ сделать это?
Я нашел свойство CPXYAxisSet.xAxis.axisLabels, однако, когда я создаю NSSet и назначаю его с помощью:
axisSet.xAxis.axisLabelingPolicy = CPAxisLabelingPolicyNone;
NSSet *labels = [[NSSet alloc] initWithObjects:@"year 1", @"year 2" @"year 3", nil];
axisSet.xAxis.axisLabels = labels;
Я получаю:
*** Terminating app due to uncaught exception 'CALayerInvalid', reason: 'expecting model layer not copy: year 1'
ошибка.
У кого-нибудь есть решение?
Большое спасибо.
Решение
Я верю в это было рассмотрено в Список рассылки основного сюжета.Свойство axisLabels принимает набор объектов CPAxisLabel (потомок CALayer), а не NSStrings , вот почему вы получаете вышеупомянутое исключение.
Чтобы создать CPAxisLabel для каждой из ваших пользовательских меток, используйте код, аналогичный следующему:
CPAxisLabel *newLabel = [[CPAxisLabel alloc] initWithText: customText];
newLabel.tickLocation = [tickLocation decimalValue];
newLabel.textStyle = x.axisLabelTextStyle;
newLabel.offset = x.axisLabelOffset + x.majorTickLength;
РЕДАКТИРОВАТЬ (18.11.2010):Пример этого теперь присутствует в тестовом приложении Core Plot для iPhone на вкладке гистограмма.