0

特定の部分文字列を黄色にしたい。レイアウトのローカライズが悪夢になるため、複数の UILabels に分割したくありません。だから私はこれを行います:

    NSMutableAttributedString* instructions = [[[NSMutableAttributedString alloc] initWithString:self.o_instructionsLabel.text] autorelease];
    NSRange range = [instructions.string rangeOfString:@"FOOBARBAZ"];
    if (range.length > 0)
    {
        [instructions addAttribute:NSForegroundColorAttributeName value:[UIColor yellowColor] range:range];
        self.o_instructionsLabel.attributedText = instructions;
    }

ただし、ラベルのテキスト全体は白のままです。これは、すべての例がそれを行う方法のようです。範囲が正しいことを確認しました。instructionsオブジェクトをダンプすると、属性が本来あるべき場所にインラインで表示されます。

私は何を間違っていますか?

4

1 に答える 1

0

drawTextInRect:解決策は、属性付きの文字列を無視するカスタム コードでした。

于 2014-05-21T22:05:33.370 に答える