2

私の目標は、セントを青い色の小さなフォントで上付き文字として表示することです。私は次のことをしています

        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;

しかし、私が得ている のはここに画像の説明を入力、上付き文字が青色ではありません。

これについての考え。

4

2 に答える 2

4

このコードの前後に CoreText を明示的に何もしていないと思われるため、これは間違った属性名の問題である可能性があります。

属性付きの文字列については、代わりに次の属性を使用してみてください

[attString addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(self.superScript.length - 2, self.superScript.length - 2)];
于 2013-07-09T16:22:19.320 に答える
3

iOS7で

[attString addAttribute:(NSString*)kCTForegroundColorAttributeName value:(id)([[UIColor blueColor] CGColor]) range:NSMakeRange(self.superScript.length - 2, self.superScript.length - 2)];

動作しません。kCTForegroundColorAttributeName を次のように置き換えます

NSForegroundColorAttributeName

値として通常の UIColor オブジェクトを渡します。

iOS 6 および 7 をサポートする必要がある場合は、iOS 6 でも動作します。

于 2014-02-13T10:47:39.673 に答える