【问题标题】:Is there any way to get CGRects for NSRange in UILabel?有没有办法在 UILabel 中为 NSRange 获取 CGRects?
【发布时间】:2013-09-01 17:50:03
【问题描述】:

我有一个带有 NSAttribtuedString 的 UILabel,需要在字符串中找到与某个 NSRange 对应的所有 CGRect。有什么简单的方法可以做到这一点吗?

我正在寻找这个,因为我打算像这样在标签上覆盖突出显示视图:

我知道 UITextView 更适合这个,因为它实现了 UITextInput 协议(它具有我需要的所有方法),但由于 iOS 中的一个错误,我仅限于 UILabel。

我一直在寻找解决方案但没有成功。 This gist 对我不起作用,我还没有找到任何 UILabel 子类可以实现任何对我有帮助的方法。

有什么建议吗? 皮特。

【问题讨论】:

  • 你可能会更幸运地找到一个解决这个问题的方法,让它在 UILabel 中工作。 ios7这个bug还存在吗?
  • 我想你是对的。此外,该错误已在 iOS 7 中修复。它与 line spacing when using custom font 有关。我的解决方案是使用多行 UILabel(不受它影响)而不是错误的 UITextView。我想我必须寻找另一种方法来让它在 iOS 6 上运行......

标签: ios objective-c uikit uilabel cgrect


【解决方案1】:

UILabel 没有任何方法可以从范围中查找 rect。您可以使用 UITextView (将 UITextView 可编辑属性设置为 NO) 来完成。 UITextview 实现了 UITextInput 协议。您可以使用 UITextInput 协议方法从范围中获取 rect

【讨论】:

  • 是的,已经知道了。但由于 iOS 6 上的行高错误,我无法使用 UITextView
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多