2

私は 2 つの異なる色の文字列を表示する必要がある UILabel を持っています: 以下は私のコードです:

NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithAttributedString: lbl_question.attributedText];

[text addAttribute: NSForegroundColorAttributeName value: [UIColor colorWithRed:52.0f/255.0f green:104.0f/255.0f blue:165.0f/255.0f alpha:1.0f] range: NSMakeRange(0,[result integerValue]+1)];

[text addAttribute: NSForegroundColorAttributeName value: [UIColor colorWithRed:75.0f/255.0f green:75.0f/255.0f blue:75.0f/255.0f alpha:2.0f] range: NSMakeRange([result integerValue]+1,[strq length])];
[lbl_question setAttributedText: text];

iOS 6 では正常に動作しますが、iOS 5 およびそれ以前のバージョンでは、2 つの文字列が毎回重なり合っていました。また、テキストとフォントに応じて幅を取得したい。テキストに従って高さを増やします。

私は解決策がなければならないと確信しています...これで私を助けてください....

4

3 に答える 3

-1

NSAttributedString UIKit 追加リファレンスから:

NSForgroundColorAttributeName この属性の値は UIColor オブジェクトです。この属性を使用して、レンダリング中のテキストの色を指定します。この属性を指定しない場合、テキストは黒でレンダリングされます。iOS 6.0 以降で利用できます。

2 つのラベルが必要か、または TTTAttributedLabel や DTCoreText などを使用します。

于 2013-07-26T14:08:19.363 に答える
-1

TTTAttributedLabelを試してください。UILabelこれはをサポートする のサブクラスでありNSAttributedStrings、同じ文字列に複数の色、フォント、およびスタイルを簡単に含めることができます。

于 2013-07-26T14:10:47.637 に答える