文本与网页视图技术解析
1. 文本布局管理与操作
1.1 文本布局基础代码
在文本处理中,我们可以构建如下代码来设置文本布局:
let r = // frame
let r2 = // frame
let mas = // content
let ts1 = NSTextStorage(attributedString:mas)
let lm1 = NSLayoutManager()
ts1.addLayoutManager(lm1)
let lm2 = NSLayoutManager()
ts1.addLayoutManager(lm2)
let tc1 = NSTextContainer(size:r.size)
let tc2 = NSTextContainer(size:r2.size)
lm1.addTextContainer(tc1)
lm2.addTextContainer(tc2)
let tv = UITextView(frame:r, textContainer:tc1)
let tv2 = UITextView(frame:r2, textContainer:tc2)
1.2 布局管理器的几何概念
布局管理器主要基于字形(Glyph)和行片段(Line fragment)来思考几何问题:
- 字形(Glyph) :是字符的绘制类似物,字符与字形并非一一对应,多个字形可对应一个字符,多个字符也可对应一个字形。布局管理器的工作是将字符转换为字形,从字体中获取这些字形并进行绘制。
-