是否可以将NSAttributedString应用于CPTTextLayer的Text

时间:2012-12-05 11:55:49

标签: objective-c ios core-plot

我想为CPTScatterPlot的每个索引显示“自定义标签”。 CPTTextLayertextStyle属性获取textcolor,font size等。我想显示在CPTTextLayer中以不同颜色显示的字符串的每个字符。我知道可以使用NSAttributedString但是当我将此参数传递给[[CPTTextLayer alloc] initWithText:attributedStr]时,我的应用程序崩溃了。是否可以将NSAttributedString应用于CPTTextLayer's文字?

2 个答案:

答案 0 :(得分:3)

从版本1.3开始,CorePlot允许基于NSAttributedString创建CPTTextLayer。这是一个例子:

NSString *smallTextPart = @"Small part ";
NSString *bigTextPart = @"and the bigger one";

NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@%@", smallTextPart, bigTextPart]];

[str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue" size:12.0] range:NSMakeRange(0, smallTextPart.length)];
[str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:18.0] range:NSMakeRange(smallTextPart.length, bigTextPart.length)];

CPTTextLayer *txtLayer = [[CPTTextLayer alloc] initWithAttributedText:str];

它也适用于多行CPTTextLayer标签(您可以使用'\ n'字符将CPTTextLayer拆分为单独的行)。

干杯。

答案 1 :(得分:0)

Core Plot目前不支持属性文本。您可以向Core Plot issue tracker添加增强请求,以便考虑将此功能包含在将来的版本中。