我想为CPTScatterPlot
的每个索引显示“自定义标签”。 CPTTextLayer
从textStyle
属性获取textcolor,font size等。我想显示在CPTTextLayer
中以不同颜色显示的字符串的每个字符。我知道可以使用NSAttributedString
但是当我将此参数传递给[[CPTTextLayer alloc] initWithText:attributedStr]
时,我的应用程序崩溃了。是否可以将NSAttributedString
应用于CPTTextLayer's
文字?
答案 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添加增强请求,以便考虑将此功能包含在将来的版本中。