Кто-нибудь разобрался, как вручную добавлять метки в график Core-Plot (iPhone)?

StackOverflow https://stackoverflow.com/questions/1385286

Вопрос

У меня есть простая гистограмма, созданная для моего приложения 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 на вкладке гистограмма.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top