美文网首页
CoreText (一、基础概念篇)

CoreText (一、基础概念篇)

作者: BearClawr | 来源:发表于2018-03-09 13:00 被阅读0次

    CoreText (一、基础概念篇)

    前言:最近因为需要对工作原因,需要对 UITableView 进行优化,用到了 CoreText 框架,所以学习了下。

    CoreText 框架结构:

    1、CTFont
    作用:向应用程序提供字体
    2、CTFontCollection
    3、CTFontDescriptor
    4、CTFrame
    5、CTFramesetter
    6、CTGlyphInfo
    7、CTLine
    8、CTParagraphStyle
    9、CTRun
    10、CTRunDelegate
    11、CTTextTab
    12、CTTypesetter

    基础知识的准备:

    1、字体(Font)

    和我们平时说的字体不同,计算机意义上的字体表示的是同一大小(Size),同一样式(Style)字形的集合。而平时我们所说的字体只是具有相同设计属性的字体集合,即Font Family或typeface。


    文字基础知识0.gif
    2、字符(Character)和字形(Glyphs)

    排版过程中一个重要的步骤就是从字符到字形的转换,字符表示信息本身,而字形是它的图形表现形式。

    字符一般就是指某种编码,如Unicode编码,而字形则是这些编码对应的图片。但是他们之间不是一一对应关系,同个字符的不同字体族,不同字体大小,不同字体样式都对应了不同的字形。而由于连写(Ligatures)的存在,多个字符也会存在对应一个字形的情况。

    3、CoreText 坐标系问题

    在 iOS UIKit 中,坐标系原点都是屏幕的左上角,X轴正方向向右,Y轴正方向向下;而 CoreText 在使用 Core Graphics 绘制时,坐标系原点是屏幕的左下角,X轴正方向向右,Y轴正方向向上。

    // 获取当前上下文
    CGContextRef context = UIGraphicsGetCurrentContext();
    // 变换矩阵
    CGContextSetTextMatrix(context, CGAffineTransformIdentity);
    // 沿Y轴正方向偏移
    CGContextTranslateCTM(context, 0, self.bounds.size.height);
    // 反转Y轴正方向
    CGContextScaleCTM(context, 1.0, -1.0);
    

    相关文章

      网友评论

          本文标题:CoreText (一、基础概念篇)

          本文链接:https://www.haomeiwen.com/subject/ymqpfftx.html