2012-12-20 50 views
0

我有一個多行UILabel,其動態文本是我想要格式化的。我需要做的唯一格式是增加行高,使一個標籤中兩行高度的差異更大。帶UILabel的NSAttributedString(ios 6):使用IB的行高屬性和屬性

問題1:如何通過NSAttributedString去做?我嘗試過,但格式非常「非UIKit」,因此令人困惑,文檔非常有限。

問題2:我可以看到可以通過Interface Builder添加屬性文本,但當然是用於靜態文本。有沒有什麼方法可以在IB中設置屬性,然後通過代碼提供文本,因爲我希望對所有文本進行格式設置,而不是對其中的任何部分進行格式設置?

回答

0

在界面構建器中,您可以設置自定義屬性/屬性。您可以在UILabel上添加一個添加屬性CSSStyle的類別。然後在setCSSStyle中,您將採用當前在文本上的NSString,將其更改爲NSAttributedString並通過setAttributedText進行設置。要轉換你放入這個屬性的CSS樣式,你可以使用像我的DTCoreText這樣的框架,或者如果這對你很重要,那麼你可以簡單地使用一個快速的&骯髒的CSS解析器(我有一個構建在DTCoreText中的NSScanner上)並將你需要的屬性轉換爲NSAttributedString屬性。

想起來,你可能會想要在這樣的屬性上設置一個HTML字符串,因爲那樣你就可以對不同的單詞進行不同的格式設置。 DTCoreText有一個將HTML轉換爲NSAttributedString的方法,然後再通過標準的setter來設置它。