如何在iPad中使用CTRunDelegate?
我正在开发一个 iPad 应用程序,我必须在其中使用 CTRunDelegate
。我已经定义了所需的所有回调,即 CTRunDelegateGetAscentCallback
、 CTRunDelegateGetDescentCallback
、 CTRunDelegateGetWidthCallback
。我不知道如何使用我正在创建的 CTRunDelegateRef
对象。现在发生的事情是我的回调没有被调用。
在这方面的任何指示都将受到高度赞赏。
提前致谢。
I am a developing an iPad application in which i have to use CTRunDelegate
. I have defined all the the callbacks that are required viz CTRunDelegateGetAscentCallback
, CTRunDelegateGetDescentCallback
, CTRunDelegateGetWidthCallback
. I dont know how to use CTRunDelegateRef
object that I am creating. Right now what is happening is that my callbacks are not getting called.
Any pointers in this regard will be highly appreciated.
Thanx in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该将运行委托添加为属性字符串中一系列字符的属性。请参阅 核心文本字符串属性。绘制时,Core Text 将调用您的回调来获取该字符的大小。
更新
这是绘制简单文本的视图的示例代码(请注意,这里没有内存管理代码)。
文本中“delegate”和“space”之间的空格字符的大小由运行委托控制。
You should add your run delegate as an attribute for a range of characters in your attributed string. See Core Text String Attributes. When drawing, Core Text will call your callbacks to get the sizing of that characters.
Update
This is a sample code for a view drawing a simple text (Note that there's no memory management code here).
The size of the space character between "delegate" and "space" in the text are controlled by the run delegate.