0

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

4

2 回答 2

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 拆分为单独的行)。

干杯。

于 2013-08-17T13:15:57.537 回答
0

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

于 2012-12-06T00:15:56.943 回答