【问题标题】:Swift: UILabel how to show all textSwift:UILabel 如何显示所有文本
【发布时间】:2015-08-28 00:02:37
【问题描述】:

我对 Swift 很陌生,我不知道如何让我的 UILabel 显示所有文本。

这是我的标签在故事板中的样子:

如您所见,部分文本被省略。我可以通过拖动 UILabel 来调整大小来显示所有文本。但是,在运行时,如果文本是动态设置的,我该如何调整标签的大小,以便它可以显示更多的所有文本?

我尝试了UILabel.sizeToFit(),但这似乎没有任何改变。

【问题讨论】:

    标签: ios objective-c swift


    【解决方案1】:

    YourUILabel.sizeToFit() 是对的,但这还不是全部……

    调用.sizeToFit()..之前需要设置行数和换行类型。

    YourUILabel.numberOfLines 等于 0 无限数量 线条...

    YourUILabel.lineBreakMode 等于 NSLineBreakMode 点(.) 例如ByWordWrapping..

    【讨论】:

      【解决方案2】:

      为什么要使用旧方法.. 让我们使用 autolayout。如果你还没有使用它。让我们开始 - 步骤:

      1. 创建一个 UIlabel 并将其宽度设置为您希望在屏幕上显示的任意数量。

      2. 选择标签转到编辑器菜单 -> 固定,然后将前导尾随和顶部空间一一固定到 Superview(不是底部)。

      3. 既然你有固定的宽度,你有动态的高度,所以也固定宽度。

      4. 转到属性检查器选项卡并将行设置为 0(表示无限制)。

      5. 转到尺寸检查器并将 Content Hugging 优先级 (250/251) 设置为低,将 Content Resistance 优先级设置为高(例如 - 750)。

      你就完成了。!!(不是一行代码)

      【讨论】:

        【解决方案3】:

        如果您没有调整使用自动布局的UILabel 框架,您可以通过从情节提要中选择标签来更改自动收缩选项,然后在检查器窗格中调整此选项。

        .

        【讨论】:

          【解决方案4】:

          您可以通过将numberOfLines 设置为0 来做到这一点

          示例

           myLabel.text = "whatever"
           myLabel.numberOfLines = 0
           myLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
          

          你已经根据它设置了框架

          参考:to this link

          【讨论】:

            【解决方案5】:

            你首先要根据你要设置的文本长度计算标签的高度,然后相应地增加行数 作为

            yourLabel.numberOfLines = "Your calculation number"
            

            然后根据计算的Height设置Label的Frame 和

            如果您无法计算标签的高度,那么我会说使用 TextView 它会自动为文本添加滚动条,您可以查看所有文本。

            【讨论】:

            • 如果您将行数设置为 0,它将假定为多行。无需计算。
            猜你喜欢
            • 2021-02-03
            • 2012-08-29
            • 2021-07-24
            • 1970-01-01
            • 2014-05-02
            • 1970-01-01
            • 1970-01-01
            • 2015-09-27
            • 1970-01-01
            相关资源
            最近更新 更多