CorePlot - 多线属性标签
CorePlot - multiLine attributed label
我正在尝试使用 NSAttributedString
为 coreplot
创建自定义标签。当我的字符串只有 1 行时一切正常。
当我想使用代码有 2 行字符串时出现问题:
NSMutableAttributedString* remFinalLabel = [remAttrStr mutableCopy];
NSMutableAttributedString *newLineAttrStr = [[NSMutableAttributedString alloc]initWithString:@"\n"];
[remFinalLabel appendAttributedString:newLineAttrStr];
[remFinalLabel appendAttributedString:rem2AttrStr];
结果是这样的:连第一个字符串都没有正确显示。如何设置自定义标签的行数?
我创建标签的代码:
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];
您可以通过设置 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
快乐编码..!!
我正在尝试使用 NSAttributedString
为 coreplot
创建自定义标签。当我的字符串只有 1 行时一切正常。
当我想使用代码有 2 行字符串时出现问题:
NSMutableAttributedString* remFinalLabel = [remAttrStr mutableCopy];
NSMutableAttributedString *newLineAttrStr = [[NSMutableAttributedString alloc]initWithString:@"\n"];
[remFinalLabel appendAttributedString:newLineAttrStr];
[remFinalLabel appendAttributedString:rem2AttrStr];
结果是这样的:连第一个字符串都没有正确显示。如何设置自定义标签的行数?
我创建标签的代码:
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];
您可以通过设置 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
快乐编码..!!