【问题标题】:How to dynamically calculate the number of characters a UILabel holds before it gets truncated?如何在 UILabel 被截断之前动态计算 UILabel 包含的字符数?
【发布时间】:2016-06-07 16:05:19
【问题描述】:

我有一个配置了动态参数的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 在被截断之前可以容纳的字符数?

【问题讨论】:

    标签: ios objective-c swift uilabel


    【解决方案1】:

    计算标签希望赋予其字体、文本和宽度的高度。如果这比您想要的高,那么文本将不适合。

    【讨论】:

    • 对不起,我不明白。那么如何计算dynamic_width&dynamic_height内可以容纳的字符数呢?
    【解决方案2】:

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

    但我建议根本不要连接,只需将文本设置为可变大小,以便它可以缩小并显示整个单词。我建议查看“动态文本”,但我不知道您的应用程序是什么,所以这可能不是最好的建议。希望对你有帮助?

    【讨论】:

    • 是的,我的应用是动态布局而不是固定布局。所以我需要字符数来决定在运行时我应该如何做进一步的布局(我的数据也是动态的,所以我不知道内容是什么)。
    猜你喜欢
    • 2015-03-29
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    相关资源
    最近更新 更多