0

動的テキストをフォーマットしたい複数行の UILabel があります。私が行う必要がある唯一の書式設定は、1 つのラベルの 2 つの行の高さの差が大きくなるように、行の高さを増やすことです。

質問 1: NSAttributedString を介してそれを行うにはどうすればよいですか? 私はそれを試してみましたが、フォーマットは非常に「非UIKit」であるため、混乱を招き、ドキュメントは非常に限られています.

質問 2: Interface Builder を使用して属性付きテキストを追加できることがわかりましたが、それはもちろん静的テキスト用です。テキストの一部ではなくすべてのテキストに対して書式設定を行いたいので、IB で属性を設定してから、コードを介してテキストを提供する方法はありますか?

4

1 に答える 1

0

Interface Builderでは、カスタム属性/プロパティを設定できます。プロパティCSSStyleを追加するカテゴリをUILabelに追加できます。次に、setCSSStyleで、現在テキスト上にあるNSStringを取得し、それをNSAttributedStringに変更して、setAttributedTextを介して設定します。

このプロパティに入れたCSSスタイルを変換するには、私のDTCoreTextのようなフレームワークを使用します。それが大きい場合は、quick&dirty CSSパーサー(DTCoreTextのNSScannerで構築されたもの)を使用して、 NSAttributedStringプロパティに必要な属性。

考えてみると、このようなプロパティにHTML文字列を設定することをお勧めします。そうすると、さまざまな単語の形式を変えることができるからです。DTCoreTextには、HTMLをNSAttributedStringに変換するメソッドがあり、標準のセッターを使用してこれを再度設定します。

于 2012-12-23T20:25:39.013 に答える