如何在 UILabel 被截断之前动态计算它包含的字符数



我有一个配置了动态参数的UILabel

textLabel.font = UIFont.systemFontOfSize(some_dynamic_size, weight: some_dynamic_font_weight)
textLabel.numberofLines = some_dynamic_number_lines
textLabel.frame = CGRectMake(0, 0, dynamic_width, dynamic_height)

如何计算此UILabel在被截断之前可以容纳的字符数?

计算标签的字体、文本和宽度希望有多高。如果它比你想要的要高,文本就不会全部适合。

问题是您的标签将能够容纳您使用的字体和设置的大小上给出的或多或少的文本。如果您将其设置为标准大小,例如旧金山为 12pt,那么您仍然会有不同数量的字母可以容纳,因为并非所有字母的宽度都相同,例如"WWW"分配大于"lll",但您可以通过取平均字母宽度来确定"最佳估计"。然后将标签的大小除以该大小,那么您将大致了解可以容纳多少个字母,但您还需要考虑"..."。即插入。

但我建议根本不连接,只是使文本大小可变,以便它可以缩小并显示整个单词。我建议查看"动态文本",但我不知道您的应用程序是什么,因此这可能不是最佳建议。希望有帮助 😜

最新更新