コアプロットに問題があり、それが原因で悲しみが生じ、インターネットを精査しても解決策が見つかりません。非常に単純な見落としだと思いますが、私の人生ではそれが何であるかを理解することはできません。
基本的に、コアプロットでカスタムラベルを設定すると、関連する配列に目盛りの位置やラベルなどの正しいデータが入力されていても、目盛りの位置0に表示されるラベルは1つだけです。
customLabels配列にnewLabelsを手動で入力して、カスタムラベルルーチンをバイパスしましたが、これは機能したため、ルーチンのどこかに基本的なものが欠けているのではないかと心配しています。
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]カスタムラベルを設定しました