iOS之文本处理框架TextKit介绍
来源:互联网 发布:校内帮源码 编辑:程序博客网 时间:2024/06/05 11:10
NSAttributeString
和NSMutableAttributeString
:属性字符串和可变属性字符串,这个TextKit中最基础的类,文字中的所有富文本属性都是通过属性字符串来表现出来的NSTextAttachment
:字符串的附件,将图片,可以将图片等内容当做一个附件插入到属性字符串中,可以实现表情混排,链接等效果;
字符(Character)和字形(Glyphs)的基础知识:
排版系统中文本显示的一个重要的过程就是字符到字形的转换,字符是信息本身的元素,而字形是字符的图形表征,字符还会有其它表征比如发音。 字符在计算机中其实就是一个编码,某个字符集中的编码,比如Unicode字符集,就囊括了大都数存在的字符。 而字形则是图形,一般都存储在字体文件中,字形也有它的编码,也就是它在字体中的索引。 一个字符可以对应多个字形(不同的字体,或者同种字体的不同样式:粗体斜体等);多个字符也可能对应一个字形,比如字符的连写( Ligatures)。
下面就来详情看看字形的各个参数也就是所谓的字形度量Glyph Metrics
bounding box(边界框 bbox):
一个假想的框子,它尽可能紧密的装入字形。
baseline(基线):
一条假想的线,一行上的字形都以此线作为上下位置的参考,在这条线的左侧存在一个点叫做基线的原点,
ascent(上行高度):
从原点到字体中最高(这里的高深都是以基线为参照线的)的字形的顶部的距离,ascent是一个正值
descent(下行高度):
从原点到字体中最深的字形底部的距离,descent是一个负值(比如一个字体原点到最深的字形的底部的距离为2,那么descent就为-2)
linegap(行距):
可以称作leading(其实准确点讲应该叫做External leading),行高lineHeight则可以通过 ascent + |descent| + linegap 来计算。
一些Metrics专业知识还可以参考Free Type的文档 Glyph metrics,其实iOS就是使用Free Type库来进行字体渲染的。
以上图片和部分概念来自苹果文档 Querying Font Metrics ,Text Layout。
- iOS之文本处理框架TextKit介绍
- 文本排版之----TextKit
- ios-TextKit框架基础
- iOS 开发 富文本详解之TextKit详解
- iOS-------------TextKit
- iOS-TextKit
- [iOS开发]TextKit之动态改变样式
- iOS中的富文本技术(1)-TextKit简介
- iOS中的富文本技术(1)-TextKit简介
- iOS框架介绍之coreImage
- iOS之QuarzCore框架介绍
- iOS系列教程之TextKit实现图文混排读后记
- iOS系列教程之TextKit实现图文混排读后记
- iOS 7 认识 TextKit
- iOS7新特性之TextKit(四)通过boundingRectWithSize:options:attributes:context:计算文本尺寸
- iOS7新特性之TextKit(四)通过boundingRectWithSize:options:attributes:context:计算文本尺寸
- iOS链式编程框架介绍之LinkBlock
- iOS之常用第三方开源框架介绍
- 侧滑可以删除的ListView
- Android性能优化
- x86—EFLAGS寄存器详解
- Maven pom文件常用配置小结
- spark sql cli
- iOS之文本处理框架TextKit介绍
- Html5本地存储和本地数据库
- B2B电子邮件营销:下一个突破口在哪?
- IC卡和ID卡的区别
- sql知识
- 闯过这 54 关,点亮你的 Git 技能树 (五) - 完结篇
- 读书笔记1---JavaScript词法结构
- iOS学习之——常用三方库(持续更新)
- 纯小白caffe实践(1)双系统Linux的安装(双硬盘)