如何在Core Plot中使用多个自定义标签?

时间:2012-09-11 10:03:05

标签: ios xcode core-plot

我遇到了核心情节的问题,这让我感到悲痛,并且在互联网上搜索无法找到解决方案。我担心这是一个非常简单的疏忽,但对于我的生活,我无法理解它是什么。

基本上,当我在核心图中设置自定义标签时,只有一个标签出现在刻度位置零处,即使相关数组填充了正确的数据,如刻度位置和标签。

我通过手动输入newLabels到customLabels数组中来传递自定义标签例程,这很有效,所以我担心我在某个地方的例程中遗漏了一些基本的东西。

NSUInteger labelLocation = 0;
NSMutableArray *customLabels = [[NSMutableArray alloc] initWithCapacity:[self.days count]];


for (NSNumber *tickLocation in self.customTickLocations)
{

    CPTAxisLabel *newLabel = [[CPTAxisLabel alloc] initWithText:[self.dateLabels objectAtIndex:labelLocation] textStyle:axisTextStyle];
newLabel.tickLocation = [tickLocation decimalValue];
    int i = [tickLocation intValue];

    newLabel.offset = 5.0f;
    newLabel.rotation = M_PI/4;

    [customLabels addObject:newLabel];
    NSLog(@"Label is %@", [self.dateLabels objectAtIndex:labelLocation]);

    labelLocation = labelLocation + 1;


    NSLog(@"Tick Location is %i", i);
}
NSLog(@"Number of labels is %i", [customLabels count]);

axisSet.xAxis.axisLabels = [NSSet setWithArray:customLabels];
axisSet.xAxis.majorTickLocations = [NSSet setWithArray:self.customTickLocations];

NSLog(@"I have set customlabels");

这是我的日志:

  

2012-09-11 10:39:23.725 SnoozeBaby [12000:c07]标签是9月11日

     

2012-09-11 10:39:23.725 SnoozeBaby [12000:c07] Tick位置为0

     

2012-09-11 10:39:23.725 SnoozeBaby [12000:c07]标签是9月10日

     

2012-09-11 10:39:23.726 SnoozeBaby [12000:c07] Tick位置为150

     

2012-09-11 10:39:23.726 SnoozeBaby [12000:c07]标签数量为2

     

2012-09-11 10:39:23.728 SnoozeBaby [12000:c07]我设置了自定义标签

1 个答案:

答案 0 :(得分:1)

您是否将CPTAxis标签政策设为CPTAxisLabelingPolicyNone?除非你这样做,否则你将无法看到标签。

要注意的第二件事是,您没有发布每次迭代创建的每个CPTAxisLabel对象。

我没有测试过这个,但我会说你应该首先设置位置然后是标签:

axisSet.xAxis.majorTickLocations = [NSSet setWithArray:self.customTickLocations];
axisSet.xAxis.axisLabels = [NSSet setWithArray:customLabels];