当前位置: 首页 > 面试题库 >

如何从UILabel的第n行获取文本/字符串?

贡英华
2023-03-14
问题内容

是否有一种简单的方法可以从UILabel中的给定行中获取(或简单地显示)文本?

我的UILabel正确显示了我的文本并将其布置得很漂亮,但偶尔我需要能够仅显示某些行,但是显然我需要知道UILabel如何放置所有东西来做到这一点。

我知道可以使用子字符串轻松完成此操作,但是我需要知道该行的起点和终点。

或者,如果UILabel的框架存在某种偏移,则可以滚动UILabel,并隐藏我不想看到的其余内容。

我还没有发现任何可以轻松完成此操作的东西。有人有什么好主意吗?

谢谢

伊法


问题答案:

我认为没有这样做的本地方法(例如“ takethenline”方法)。
我可以找出一个棘手的解决方案,但不确定是否是最佳解决方案。
您可以将标签分成单词数组。
然后,您可以循环数组并检查文本高度,直到像这样的单词:


NSString *texttocheck;
float old_height = 0;
int linenumber = 0;

for (x=0; x<[wordarray lenght]; x++) {
    texttocheck = [NSString stringWithFormat:@"%@ %@", texttocheck, [wordarray objectAtIndex:x]];

    float height = [text sizeWithFont:textLabel.font
                    constrainedToSize:CGSizeMake(textLabel.bounds.size.width,99999) 
                        lineBreakMode:UILineBreakModeWordWrap].height;

    if (old_height < height) {
        linenumber++;
    }
}

如果高度发生变化,则表示单词前有换行符。
我现在无法检查语法是否正确编写,因此您必须自己检查它。



 类似资料:
  • 问题内容: 我想用这样的东西来获取发生的开始位置: 你会怎么做? 问题答案:

  • 我想用这样的东西来获得出现的起始位置: 你会怎么做?

  • 问题内容: 我希望能够从突出显示的文本部分中获取字符串,我该如何处理? 问题答案: 对于或小部件,您可以使用: 从Python控制台的Entry和Text小部件中获取选定文本的交互式示例: 根据布莱恩·奥克利(Bryan Oakley)的评论: 是可用于所有小部件的通用小部件方法。它并不 总是 从“文本”小部件中获取选定的字符串。可以,但不能保证。它所做的就是得到所谓的“ X”选择(来自tk的X1

  • 问题内容: 我有一个文本文件: 我想要这样的每一行的第二个和第四个词: 我正在使用此代码: 它可以工作,但是非常复杂,并且需要很长时间来处理长文本文件。 有没有更简单的方法可以做到这一点? 问题答案: iirc: 或者,如评论中所述:

  • 问题内容: 如何在PHP中获取字符串的前n个字符?将字符串修剪为特定数量的字符并在需要时附加“ …”的最快方法是什么? 问题答案: 更新: 基于检查长度的建议(并确保修剪后的和未修剪的琴弦的长度相似): 因此,您将获得最多13个字符的字符串;13个(或更少)普通字符或10个字符,后跟“ …” 更新2: 或作为功能: 更新3: 自从我写了这个答案已经有一段时间了,我实际上不再使用此代码了。我更喜欢这

  • 我有一个字符串,它包含字节数组的元素,比如“[B@42B19E58”,我必须将它转换回字节数组。 有人能给我一个这样做的方法吗? 在这里,我不必将一个字符串转换为字节数组。我已经有字节数组元素在字符串中,我只需要把它们放回数组。