标kCTForegroundColorAttributeName

标kCTForegroundColorAttributeName

我的目标是将美分显示为带有蓝色小字体的上标。我正在做以下

        self.superScript      =   @"8899";
        NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:self.superScript];
        UIFont *font = [UIFont systemFontOfSize:18.0f];
        UIFont *smallFont = [UIFont systemFontOfSize:9.0f];

        [attString beginEditing];
        [attString addAttribute:NSFontAttributeName value:(font) range:NSMakeRange(0, self.superScript.length - 2)];
        [attString addAttribute:NSFontAttributeName value:(smallFont) range:NSMakeRange(self.superScript.length - 2, self.superScript.length - 2)];
        [attString addAttribute:(NSString*)kCTSuperscriptAttributeName value:@"2" range:NSMakeRange(self.superScript.length - 2, self.superScript.length - 2)];
        [attString addAttribute:(NSString*)kCTForegroundColorAttributeName value:(id)([[UIColor blueColor] CGColor]) range:NSMakeRange(self.superScript.length - 2, self.superScript.length - 2)];
        [attString endEditing];
        self.amount.attributedText = attString;

但是我得到的是
并且上标不是蓝色。

关于这一点的任何想法。

最佳答案

这可能只是一个错误的属性名称问题,因为我怀疑您在此代码之前或之后没有明确地执行CoreText的任何操作。

对于您的属性字符串try using these attributes instead:

[attString addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(self.superScript.length - 2, self.superScript.length - 2)];

关于ios - 为下标kCTForegroundColorAttributeName,ios设置颜色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17553222/

10-09 00:15