iOS Text

1.對text排版的framework,使用TextKit.
顯示單個字符也有frame,bounds,position,transform等屬性的類,我們可以用CATextLayer.

文本布局,我們用TextKit,它里面主要有三個類,NSTextStorage, NSLayoutManager, NSContainer.

  • NSTextStorage: NSMutableAttributedString 的子類,持有文字內容,當字符發生改變時,通知 NSLayoutManager 對象

  • NSLayoutManager: 我們的男主角,從 NSTextStorage 里獲取文字內容后,轉換成對應的 glyph,根據 NSTextContainer 的 visible Region 顯示 glyph。

  • NSContainer: 確定一個 region 來放置 text。這個 region 被 NSLayoutManager 用來決定哪里可以 break lines

UILabel中沒有直接的這個三個屬性,現在為止.

TextStorage的文本內容改變的時候,會觸發一個通知send textLayoutManager,以便重新布局排版。所以,我們應該在排版布局之后再來為每一個字符創建設置一個CATextLayer, 并且設置響應的frame, 以便正確地顯示文本內容。

Core Animation基于一個假說,就是屏幕上的任何東西都可以 (或者可能) 做動畫

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容