iOS Text

1.对text排版的framework,使用TextKit.
显示单个字符也有frame,bounds,position,transform等属性的类,我们可以用CATextLayer.

文本布局,我们用TextKit,它里面主要有三个类,NSTextStorage, NSLayoutManager, NSContainer.

  • NSTextStorage: NSMutableAttributedString 的子类,持有文字内容,当字符发生改变时,通知 NSLayoutManager 对象

  • NSLayoutManager: 我们的男主角,从 NSTextStorage 里获取文字内容后,转换成对应的 glyph,根据 NSTextContainer 的 visible Region 显示 glyph。

  • NSContainer: 确定一个 region 来放置 text。这个 region 被 NSLayoutManager 用来决定哪里可以 break lines

UILabel中没有直接的这个三个属性,现在为止.

TextStorage的文本内容改变的时候,会触发一个通知send textLayoutManager,以便重新布局排版。所以,我们应该在排版布局之后再来为每一个字符创建设置一个CATextLayer, 并且设置响应的frame, 以便正确地显示文本内容。

Core Animation基于一个假说,就是屏幕上的任何东西都可以 (或者可能) 做动画

你可能感兴趣的:(iOS Text)