我遇到了核心情节的问题,这让我感到悲痛,并且在互联网上搜索无法找到解决方案。我担心这是一个非常简单的疏忽,但对于我的生活,我无法理解它是什么。
基本上,当我在核心图中设置自定义标签时,只有一个标签出现在刻度位置零处,即使相关数组填充了正确的数据,如刻度位置和标签。
我通过手动输入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]我设置了自定义标签
答案 0 :(得分:1)
您是否将CPTAxis
标签政策设为CPTAxisLabelingPolicyNone
?除非你这样做,否则你将无法看到标签。
要注意的第二件事是,您没有发布每次迭代创建的每个CPTAxisLabel
对象。
我没有测试过这个,但我会说你应该首先设置位置然后是标签:
axisSet.xAxis.majorTickLocations = [NSSet setWithArray:self.customTickLocations];
axisSet.xAxis.axisLabels = [NSSet setWithArray:customLabels];