首先介紹NSLayoutManager,屬于UITextKit核心類。
NSTextContainer。定義了文本可以排版的區(qū)域。默認情況下是矩形區(qū)域,如果是其他形狀的區(qū)域,需要通過子類化NSTextContainer來創(chuàng)建。
NSLayoutManager。該類負責對文字進行編輯排版處理,將存儲在NSTextStorage中的數(shù)據(jù)轉(zhuǎn)換為可以在視圖控件中顯示的文本內(nèi)容,并把字符編碼映射到對應的字形上,然后將字形排版到NSTextContainer定義的區(qū)域中。
NSTextStorage。主要用來存儲文本的字符和相關(guān)屬性,是NSMutableAttributedString的子類。此外,當NSTextStorage中的字符或?qū)傩园l(fā)生改變時,會通知NSLayoutManager,進而做到文本內(nèi)容的顯示更新。
NSAttributedString。支持渲染不同風格的文本。
NSMutableAttributedString。可變類型的NSAttributedString,是NSAttributedString的子類
*******************************************************************************************************
以前很古老的排版印刷中,工人(NSLayoutManager)從字體庫中取出單個字母(NSTextStorage)組成要打印的版(NSTextStorage),然后印刷。
********************************************************************************************************
例子是實現(xiàn)在顯示選擇的所有條件(字體顏色,條件背景顏色等)
http://icell.io/layout-using-textkit/
http://www.ituring.com.cn/tupubarticle/2542
http://stackoverflow.com/questions/21857408/how-to-set-nsstrings-background-cornerradius-on-ios7