UIWebView 也是处理复杂的文字排版的备选方案
分类:彩世界开奖app苹果下载-编程

CoreText 是用于处理文字和字体的底层技术。它直接和 Core Graphics(又被称为 Quartz)打交道。Quartz 是一个 2D 图形渲染引擎,能够处理 OSX 和 iOS 中的图形显示。

Quartz 能够直接处理字体和字形,将文字渲染到界面上,它是基础库中唯一能够处理字形的模块。因此,CoreText 为了排版,需要将显示的文本内容、位置、字体、字形直接传递给 Quartz。相比其它 UI 组件,由于 CoreText 直接和 Quartz 来交互,所以它具有高速的排版效果。

图片 1

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

CoreText 占用的内存更少,渲染速度快,UIWebView 占用的内存更多,渲染速度慢。

CoreText 在渲染界面前就可以精确地获得显示内容的高度(只要有了 CTFrame 即可),而 UIWebView 只有渲染出内容后,才能获得内容的高度(而且还需要用 javascript 代码来获取)

CoreText 的 CTFrame 可以在后台线程渲染,UIWebView 的内容只能在主线程渲染。

基于 CoreText 可以做更好的原生交互效果,交互效果可以更细腻。而 UIWebView 的交互效果都是用 javascript 来实现的,在交互效果上会有一些卡顿存在。例如,在 UIWebView 下,一个简单的按钮按下效果,都无法做到原生按钮的即时和细腻的按下效果。

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

CoreText 渲染出来的内容不能像 UIWebView 那样方便地支持内容的复制。

基于 CoreText 来排版需要自己处理很多复杂逻辑,例如需要自己处理图片与文字混排相关的逻辑,也需要自己实现链接点击操作的支持。

本文由彩世界开奖发布于彩世界开奖app苹果下载-编程,转载请注明出处:UIWebView 也是处理复杂的文字排版的备选方案

上一篇:beego1.7.0前的版本app.conf里的配置加载不到 下一篇:~不想给星就给我
猜你喜欢
热门排行
精彩图文