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。
相關文章
- iOS-UIKit框架學習—UIWindowiOSUI框架
- iOS-UIKit框架學習—UIButtoniOSUI框架
- UIKit——UIButtonUI
- WWDC 2018:TextKit 最佳實踐
- 玩轉swift — UIKit 之 UIView(1)SwiftUIView
- 問題[●●●]:什麼是UIKit Dynamics?UI
- TextKit入門? 表情鍵盤? 圖文混排? --看我就夠了
- objc系列譯文(5.2):UICollectionView 和 UIKit DynamicsOBJUIView
- UIKit Inside: frame bounds position anchorPoint centerUIIDE
- 為什麼我要編寫自己的UIKitUI
- AFNetworking 之 UIKit 擴充套件與快取實現UI套件快取
- Xcode8 "subsystem com apple UIKit, category HIDEventFiltered, enablXCodeAPPUIGoIDEdevFilter
- 玩轉iOS開發:iOS 11 新特性《UIKit新特性的基本認識》iOSUI
- hana-ui - 一個清新二次元風格的React-UIKitUI二次元React
- 寫在平臺大戰之後:為什麼我要重寫自己的UIKit?UI
- (iOS)SpriteKit 製作簡易手遊虛擬搖桿(UIKit通用) Double零元件系列iOSUI元件
- Xcode8:"subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0" 的警告XCodeAPPUIGoIDEdevFilter
- Android精通之OrmLite資料庫框架,Picasso框架,Okio框架,OKHttp框架AndroidORM資料庫框架HTTP
- 微服務框架-dubbo整合nacos框架微服務框架
- bo 框架之 beego 框架 model curd框架Go
- golang web框架,golang版本laravel 框架GolangWeb框架Laravel
- 最好的 Go 框架:沒有框架?Go框架
- httprouter框架 (Gin使用的路由框架)HTTP框架路由
- 用Kohana框架來替代Zend框架框架
- 【集合框架】Java集合框架綜述框架Java
- 前端框架開發之Niu框架——從零學框架的小白前端框架
- Koa框架教程,Koa框架開發指南,Koa框架中文使用手冊,Koa框架中文文件框架
- Django框架,Flask框架和Tornado框架各有什麼優缺點Django框架Flask
- wsgiref模組、web框架、django框架簡介Web框架Django
- 我的開發框架之ORM框架框架ORM
- spring框架——Spring框架簡介Spring框架
- SSM框架SSM框架
- 前端框架前端框架
- 全新框架框架
- cms 框架框架
- Mybatis框架MyBatis框架
- HTML 框架HTML框架
- ForkJoin框架框架