【问题标题】:UILabel text on each lineUILabel 每一行的文本
【发布时间】:2011-06-18 18:51:37
【问题描述】:

如果我有一个特定大小的 UILabel,换行模式设置为 WordWrap 并且 numberOfLines = 0(因此它会根据文本的数量而增长),有没有办法确定每行上的字符是什么标签?

因此,如果我在标签上将文本“所有人似乎都需要数据处理”作为文本,并假设它在屏幕上显示为这样

All People
Seem To
Need Data
Processin
g

有没有办法知道每一行的文字?还是每行的宽度?
第 1 行:所有人
第 2 行:似乎
第 3 行:需要数据
第 4 行:处理
第 5 行:g

【问题讨论】:

标签: iphone nsstring uilabel


【解决方案1】:

使用 NSString 的 sizeWithFont 怎么样?最多执行每个单词,直到得到一个大于标签宽度的数字。然后将这些单词切掉,下一行再做一次。

【讨论】:

  • 您需要考虑空格以及每个字形具有不同宽度的事实。
  • to CGGraham :在自动换行时,单词的某些字符会像示例中的“处理”一样被切掉
  • 关于 UILineBreakModeWordWrap 如何工作的任何参考资料?我知道它是否找到某些字符,如空格、?-、换行符,它会换行到下一行。但是当我们有一个长词时呢?
  • Moshe - sizeWithFont 这样做(为什么在这里输入 post 而不是换行符?蹩脚。) /n GianPac - 如果一个单词比宽度长,一个字母一个字母地走。并在空格加连字符的正则表达式上打破你的单词列表。
【解决方案2】:

我已经给出了关于同一查询How to get text from nth line of UILabel? 的答案。
有一个方法,只要调用它。它将返回每一行的 array。快乐编码:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-02
    • 2014-06-17
    • 2015-08-07
    • 2017-11-14
    • 2016-07-19
    • 2010-11-10
    • 2015-05-25
    • 2014-03-04
    相关资源
    最近更新 更多