Eon*_*nil 9 text image core-text
我可以使用Core Text绘制富文本,问题是将图像与文本一起流动.(iOS SDK 4.1)
我试着绘制某种富文本.问题是设计师在文本中放置了许多图标.所以我要绘制的文字是这样的:
Run Code Online (Sandbox Code Playgroud)Here is a word <an icon image>, and another words. The image(<another icon>) should be placed like a glyph. It's part of text, not an example.
<icon>是图像.(这不是代码.只是一个例子.)
我可以通过手动布局所有这些来绘制它,但是保持复杂的文本布局行为太难了.所以我找到了一种用Core Text绘制它的方法.
我得到了解决方案
布置非文本内容的关键是CTRunDelegate.
Core Text不支持非文本内容,因此您必须为它们创建空格,并在以后绘制或放置它们.
NSAttributedString属性的一部分kCTRunDelegateAttributeName将调用已注册的回调来确定每个字形的宽度.这将允许您为每个非文本对象创建空格.
但是,在绘制文本后Core Text,使用frame/line/run存储的布局信息将无效.所以你必须在使用framesetter/typesetter进行布局之后,但在绘制之前绘制/放置非文本内容.
此链接描述了CTRunDelegate的基本用法:
如何在iPad中使用CTRunDelegate?
Core Text存在问题.最初,CTRunDelegate旨在通过CTRunDelegateCallbacks.getAscent和支持可变宽度和垂直对齐CTRunDelegateCallbacks.getDescent.但垂直对齐功能目前不起作用.这可能是一个错误.
我在这里描述了这个问题: 在iOS中使用Core Text对齐多个大小的文本垂直中心而不是基线
如果您有关于此问题的信息,请在链接中查看我的问题.
| 归档时间: |
|
| 查看次数: |
6825 次 |
| 最近记录: |