在我的图表中,majorGridLines适用于整数,但是当范围介于3.0和0.0之间时,大约有10个majorTickLocations。 tick位置在正确的位置,IE大约每0.3,但majorGridLines与Tick不在同一位置,它们只是登陆整个数字1.0,2.0,3.0等。我怎样才能获得majorGridLines到使用unwhole数字并与tickLocations保持一致?
代码如下:
NSMutableSet *yLabels = [NSMutableSet set];
NSMutableSet *yMajorLocations = [NSMutableSet set];
for (int i=-1; i<numYAxisLabels; i++) {
id jAsID = [NSNumber numberWithInt:(int)j];
int jAsInt = [jAsID integerValue];
CPTAxisLabel *label;
if(majorIncrement < 1)
label = [[CPTAxisLabel alloc] initWithText:[NSString stringWithFormat:@"%.1f", j] textStyle:y.labelTextStyle];
else
label = [[CPTAxisLabel alloc] initWithText:[NSString stringWithFormat:@"%d", jAsInt] textStyle:y.labelTextStyle];
NSDecimal location = CPTDecimalFromFloat(j);
label.tickLocation = location;
label.offset = -y.majorTickLength - y.labelOffset;
[yLabels addObject:label];
[yMajorLocations addObject:jAsID];
currTopYLabelLocation = j;
j += majorIncrement;
}
y.axisLabels = yLabels;
y.majorTickLocations = yMajorLocations;
答案 0 :(得分:1)
刻度线位置是根据一系列jAsID
值构建的。在问题中给出的代码中,j
在创建NSNumber
对象之前被强制转换为整数值。