是否有一种简单的方法可以从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++; } }
如果高度发生变化,则表示单词前有换行符。 我现在无法检查语法是否正确编写,因此您必须自己检查它。