CorePlot - 多线索属性标签

时间:2016-03-10 11:06:56

标签: ios core-plot

我正在尝试使用coreplotNSAttributedString创建自定义标签。当我的琴弦有1行时,一切正常。

当我想使用代码时有2个行字符串时会出现问题:

NSMutableAttributedString* remFinalLabel = [remAttrStr mutableCopy];
NSMutableAttributedString *newLineAttrStr = [[NSMutableAttributedString alloc]initWithString:@"\n"];
[remFinalLabel appendAttributedString:newLineAttrStr];
[remFinalLabel appendAttributedString:rem2AttrStr];

结果如下:即使第一个字符串也没有正确显示。如何设置自定义标签中的行数?

enter image description here

我创建标签的代码:

NSMutableArray* labelsStrings = [NSMutableArray arrayWithObjects:strAttr1, strAttr2, strAttr3, nil];
NSMutableArray *ticksLocations = [NSMutableArray arrayWithObjects:@0.5, @1.5, @2.5, nil];
NSMutableArray* customLabels = [[NSMutableArray alloc] init];
NSUInteger labelLocation = 0;

@try {
    for (NSNumber *tickLocation in ticksLocations) {
        NSAttributedString* currentLabel = [labelsStrings objectAtIndex:labelLocation];

        CPTTextLayer *txtLayer = [[CPTTextLayer alloc] initWithAttributedText:currentLabel];
        CPTAxisLabel* newLabel = [[CPTAxisLabel alloc] initWithContentLayer:txtLayer];

        newLabel.tickLocation = tickLocation;
        newLabel.offset = 0.0f;
        newLabel.alignment = CPTAlignmentLeft;
        [customLabels addObject:newLabel];
        labelLocation++;
    }
}
@catch (NSException * e) {
    DLog(@"An exception occurred while creating date labels for x-axis");
}
@finally {
    y.axisLabels =  [NSSet setWithArray:customLabels];
}
y.majorTickLocations = [NSSet setWithArray:ticksLocations];

1 个答案:

答案 0 :(得分:1)

您可以通过设置 CPTAxisLabel 的内容图层框架来实现此目的。

试试这个: -

    CPTAxisLabel *label = [[CPTAxisLabel alloc] initWithText:@"Your Text Here" textStyle:@"Text Style"];
    [label.contentLayer setFrame:CGRectMake(0, 0, 40, 40)]; //change this frame according to your requirement

快乐编码.. !!