美文网首页
iOS文字排版概念(字符和字形)

iOS文字排版概念(字符和字形)

作者: 丶丶夏天 | 来源:发表于2020-04-15 17:58 被阅读0次

    1.术语解释:

    系统api中使用了很多术语,这里做一下解释:

    字符(Characters) 和字形(Glyphs)

    字符(Characters)很好理解,一个字母数字汉字加减符号等
    字形(Glyphs):就是指一个字符可以表现为不同的样子,比如下图,就是指字符A的不同字形



    字符和字形不是一一对应的,有时候一个字形是由2个字符组成,比如:
    字形e +字形 ´ = 字符é
    又或者2个f字符形成一个字形,如下图:


    image.png
    字符到显示的字形是由布局管理器( layout manager )来处理的,布局管理器选择显示哪种字形,以及显示在什么位置,还提供了字符和字形之间转换的方法,以及字符和视图坐标之间转换的方法。

    2.文本布局Text Layout

    文本布局就是把字形排列在显示屏上的过程,大部分语言都是从左到右,从上到下排列,但是有时候可能需要从上往下排列,或者围绕图片周围排列.
    换行: 在文本系统中,可以在单词或字形边界处指定换行符
    布局管理器沿着(基线)baseline排列视图,如下图


    Glyph metrics

    大多数字形都在基线上方,少数会延伸到基线下面去,每个字形都包含一个原点(Origin,图中的实心黑色点),布局系统是根据字形的Origin让它与基线对齐的.
    图中的Advance width那个白点就是下一个字形的原点(Origin)
    大多数情况下,字形都是一个一个这么排列下去的,每个字形中间的空隙相等,但是有时候这样看起来不美观,比如下图:



    第2行为字形间距相等,看起来WAVE单词分的"太开"了,所以就在某些字形之间缩小了间距如第一行.当然如果不需要这种字距调整也可以关闭它,系统提供了对应的方法
    字体系统通常以磅(point)来表示字体的大小,在大多数计算机系统中,72磅=1英寸.
    字体系统排行时在2行之间加的space成为leading(有时候也叫linegap)所以:行高lineHeight = Ascent+Descent+Line Gap(leading),(似乎和传统金属排版有关),如下图: image.png

    相关文章

      网友评论

          本文标题:iOS文字排版概念(字符和字形)

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