核心情节Y轴majorgridline只能登陆整数?

时间:2013-02-25 01:00:31

标签: ios objective-c core-plot

在我的图表中,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;

1 个答案:

答案 0 :(得分:1)

刻度线位置是根据一系列jAsID值构建的。在问题中给出的代码中,j在创建NSNumber对象之前被强制转换为整数值。