2

我的核心情节有问题,这让我很伤心,并且在互联网上搜索找不到解决方案。我担心这是一个非常简单的疏忽,但对于我的生活,我无法弄清楚它是什么。

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

我通过手动将 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] 勾选位置为 0

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

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

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

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

4

1 回答 1

1

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

要注意的第二件事是,您不会释放每次CPTAxisLabel迭代创建的每个对象。

我没有对此进行测试,但我会说你应该首先设置位置然后设置标签:

axisSet.xAxis.majorTickLocations = [NSSet setWithArray:self.customTickLocations];
axisSet.xAxis.axisLabels = [NSSet setWithArray:customLabels];
于 2012-09-12T07:43:18.817 回答