簡體   English   中英

NSAttributedString與UILabel(ios 6):使用行高屬性和IB中的屬性

[英]NSAttributedString with UILabel (ios 6): Using line height attribute and attributes from IB

我有一個多行UILabel,其動態文本是我希望設置的格式。 我唯一需要做的格式化就是增加行高,以便一個標簽中兩行的高度差更大。

問題1:如何通過NSAttributedString進行操作? 我嘗試過這一點,但是格式非常“ non-UIKit”,因此令人困惑,並且文檔非常有限。

問題2:我可以看到可以通過Interface Builder添加屬性文本,但是當然是針對靜態文本的。 有什么方法可以設置IB中的屬性,然后通過代碼提供文本,因為我希望對所有文本而非部分文本進行格式化?

在界面構建器中,您可以設置自定義屬性/屬性。 您可以在UILabel上添加一個類別,該類別添加一個屬性CSSStyle。 然后在setCSSStyle中,將獲取文本上當前使用的NSString,將其更改為NSAttributedString並通過setAttributedText進行設置。

要轉換您放入此屬性的CSS樣式,您可以使用類似我的DTCoreText的框架,或者如果它適合您,那么您可以簡單地使用快速臟的CSS解析器(我在DTCoreText中基於NSScanner構建了一個),然后進行您需要NSAttributedString屬性的屬性。

想到這一點,您可能希望在這樣的屬性上設置HTML字符串,因為這樣您就可以不同地設置不同的單詞格式。 DTCoreText具有將HTML轉換為NSAttributedString的方法,然后您可以通過標准設置器再次進行設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM