用 CoreText 模拟 UITextView 文本渲染?
Posted
技术标签:
【中文标题】用 CoreText 模拟 UITextView 文本渲染?【英文标题】:Emulating UITextView text rendering with CoreText? 【发布时间】:2013-03-07 13:04:47 【问题描述】:我正在尝试创建一个能够突出显示各种单词的 TextView。我不想在 ios 6 中使用属性文本属性,因为我想支持 iOS 5 和其他问题(例如,请参见此处:UITextView attributedText and syntax highlighting)。
所以我唯一的选择就是使用 CoreText。我找到了这个项目:https://github.com/KayK/RegexHighlightView。它基本上所做的就是覆盖 UITextView 的 drawRect 方法并使用 CoreText 绘制内容。问题是核心文本渲染与 UITextView 渲染不同 - 这导致光标位于错误的位置(随着文本变长变得更糟)。
有没有希望解决这个问题?也许还有其他聪明的方法?
【问题讨论】:
【参考方案1】:试试这个: https://github.com/mattt/TTTAttributedLabel TTTAttributedLabel 支持 iOS 4.0 及更高版本。
【讨论】:
【参考方案2】:试试 EGOTextView。或者你可以做 webView 的方式。 (UITextView 实际上主要是在后台执行此操作)
【讨论】:
EGOTextView 有很多错误并且需要认真的工作(我尝试使用它但无法使其接近 UITextView 体验)。 WebView 选项是我希望避免的,因为它对我来说很复杂...... 可能不会比 CoreText 复杂。 EGOTextView 很好,只是不完美。大多数 WebView 实现也有相当多的错误。 OMNI 框架也有一个不错的 CoreText 实现。没有一些努力,你是不会摆脱困境的。实现文本布局真的很难。 你能给我一个文本视图的开源 WebView 实现的例子吗? 当然,在 iOS 6 之前它一直是一个非常普遍的范例。试试这个谷歌搜索:uiwebview 文本编辑器以上是关于用 CoreText 模拟 UITextView 文本渲染?的主要内容,如果未能解决你的问题,请参考以下文章
UILabel 或 UITextView 在两行中带有第一个字母非常大的字体