CoreText学习探究

2017-04-06  本文已影响0人  夏天的风_song

一、核心文本

Core Text是一种用于布置文字和处理字体的先进的低级技术。在Mac OS X v10.5和iOS 3.2中引入的Core Text API可从所有OS X和iOS环境访问。

重要提示: Core Text适用于必须在低级别进行文本布局和字体处理的开发人员,例如布局引擎的开发人员。
如果可能,您应该使用更高级别的框架开发应用程序,也就是说,在iOS中使用Text Kit或OS X中的Cocoa文本系统)。
核心文本是这些文本系统的基础技术,所以它们的速度和效率是共享的。此外,Text Kit 和Cocoa Kit提供丰富的文本编辑,功能齐全的页面布局引擎和其他基础架构,您的应用程序如果单独使用核心文本则需要提供。

1.png

二、概述

Core Text适用于需要与Core Graphics框架(Quartz)相关的低级文本处理技术的应用程序。
如果您直接使用Quartz并且需要绘制一些文本,请使用Core Text。
例如,如果您有自己的页面布局引擎 - 您有一些文本,并且您知道需要在视图中进行的位置 - 您可以使用Core Text生成字形并将它们相对定位,并具有所有的功能精细排版,如字距调整,连字,断线,连字符和对齐。

Core Text Lays Out Text(核心文本布局文本)

核心文本生成字形(从字符代码和字体数据),并在字形运行中将它们相对于彼此定位。它将字形运行成行,并将线组合成多行框架(如段落)。核心文本还提供字形和布局相关数据,如字形位置和线和帧的测量。它处理字符属性和段落样式,包括各种类型的选项卡样式和定位。

使用核心文本管理字体

Core Text字体API提供字体,字体集合,字体描述符和容易访问字体数据。它还支持多种主字体,字体变体,字体级联和字体链接。Core Text为Quartz提供了一种替代方法,用于将您自己的字体加载到当前进程中,即字体激活。

三、CoreText的优劣

CoreText.png

UIWebView也是复杂的文字排版的备选方案。对于排版,基于CoreText和基于UIWebView
相比,前者有如下好处:

当然,基于 CoreText 的排版方案也有一些劣势:

注意事项: Core Text中的所有单独功能都是线程安全的。字体对象(CTFont,CTFontDescriptor和关联对象)可以由多个操作,工作队列或线程同时使用。但是,布局对象(CTTypesetter,CTFramesetter,CTRun,CTLine,CTFrame和关联对象)应该在单个操作,工作队列或线程中使用。

上一篇下一篇

猜你喜欢

热点阅读