UIKit框架 - TextKit
一. TextKit 架構
看圖就已經知道底層就是Core Text,蘋果可能感覺Core Text比較難用,在iOS 7時釋出了TextKit.
二.Text Kit中重要的一些物件
圖中主要表現NSTextContainer, NSLayoutManager, NSTextStorage之間的關係。
- Text View是用來顯示文字內容的控制元件,主要包括UILabel、UITextView和UITextField。
- Text containers對應著NSTextContainer類。NSTextContainer定義了文字可以排版的區域。一般來說,都是矩形區域,當然,也可以根據需求,通過子類化NSTextContainer來建立別的一些形狀,例如圓形、不規則的形狀等。NSTextContainer不僅可以建立文字可以填充的區域,它還維護著一個陣列——該陣列定義了一個區域,排版的時候文字不會填充該區域,因此,我們可以在排版文字的時候,填充非文字元素。
- Layout manager對應著NSLayoutManager類。該類負責對文字進行編輯排版處理——通過將儲存在NSTextStorage中的資料轉換為可以在檢視控制元件中顯示的文字內容,並把統一的字元編碼對映到對應的字形(glyphs)上,然後將字形排版到NSTextContainer定義的區域中。
- Text storage對應著NSTextStorage類。該類定義了Text Kit擴充套件文字處理系統中的基本儲存機制。NSTextStorage繼承自NSmutableAttributedString,主要用來儲存文字的字元和相關屬性。另外,當NSTextStorage中的字元或屬性發生了改變,會通知NSLayoutManager,進而做到文字內容的顯示更新。
- 其實總結下來就是,一個文字需要先建立一個容器物件(NSTextContainer),然後還需要建立一個文字的儲存物件(NSTextStorage)。然後通過一個管理者(NSLayoutManager)把文字顯示在容器中,形成一個我們看到的UILable。
相關文章
- UIKit——UIButtonUI
- WWDC 2018:TextKit 最佳實踐
- 玩轉swift — UIKit 之 UIView(1)SwiftUIView
- UIKit Inside: frame bounds position anchorPoint centerUIIDE
- (iOS)SpriteKit 製作簡易手遊虛擬搖桿(UIKit通用) Double零元件系列iOSUI元件
- Android精通之OrmLite資料庫框架,Picasso框架,Okio框架,OKHttp框架AndroidORM資料庫框架HTTP
- bo 框架之 beego 框架 model curd框架Go
- 微服務框架-dubbo整合nacos框架微服務框架
- 最好的 Go 框架:沒有框架?Go框架
- golang web框架,golang版本laravel 框架GolangWeb框架Laravel
- 前端框架開發之Niu框架——從零學框架的小白前端框架
- Django框架,Flask框架和Tornado框架各有什麼優缺點Django框架Flask
- 執行時框架,編譯時框架框架編譯
- 【SSH框架】系列之 Spring 整合 Hibernate 框架框架Spring
- Spring框架 - Spring和Spring框架組成Spring框架
- HTML 框架HTML框架
- ForkJoin框架框架
- LayUI框架UI框架
- MVC框架MVC框架
- picasso框架框架
- Gorm框架GoORM框架
- express框架Express框架
- Hibernate框架框架
- SSM框架SSM框架
- 全新框架框架
- 前端框架前端框架
- Truffle框架框架
- cms 框架框架
- Mybatis框架MyBatis框架
- Scrapy框架框架
- 集合框架框架
- 基本框架框架
- 【JavaScript框架封裝】公共框架的封裝JavaScript框架封裝
- Scrapy框架的使用之Scrapy框架介紹框架
- java框架之Hibernate框架知識點整理。Java框架
- Django是同步框架還是非同步框架Django框架非同步
- 中介軟體增強框架之-CaptureFramework框架框架APTFramework
- Flutter框架分析(四)-- Flutter框架的執行Flutter框架