Ios Swift:UILabel如何显示所有文本

Ios Swift:UILabel如何显示所有文本,ios,objective-c,swift,Ios,Objective C,Swift,我对Swift非常陌生,我不知道如何让我的UILabel显示所有文本 以下是我的标签在故事板中的外观: 如你所见,部分文本被省略了。我可以通过拖动UILabel来调整大小来显示所有文本。但是,在运行期间,如果文本是动态设置的,如何调整标签的大小,使其能够显示更多的所有文本 我尝试了UILabel.sizeToFit(),但似乎没有任何改变。您可以通过将numberOfLines设置为0 示例 myLabel.text = "whatever" myLabel.numberOfLines =

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

以下是我的标签在故事板中的外观:

如你所见,部分文本被省略了。我可以通过拖动UILabel来调整大小来显示所有文本。但是,在运行期间,如果文本是动态设置的,如何调整标签的大小,使其能够显示更多的所有文本


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

您可以通过将
numberOfLines
设置为
0

示例

 myLabel.text = "whatever"
 myLabel.numberOfLines = 0
 myLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
你们已经根据它设置了框架


请参阅:

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

然后根据计算的高度设置标签的边框 及


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

如果您没有使用autolayout调整
UILabel
框架的大小,您可以通过从情节提要中选择标签来更改Autoshrink选项,并在inspector窗格上调整此选项

youruilab.sizeToFit()
是正确的,但这还不是全部

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

YourUILabel.numberOfLines
等于
0
,用于无限数量的 台词

youruilab.lineBreakMode
等于
NSLineBreakMode
dot(.) 例如,
ByWordWrapping


为什么要用老办法。。让我们使用自动布局。如果你还没用过的话。让我们开始-步骤:

  • 创建一个UIlabel,并将其宽度设置为屏幕上所需的任意数量

  • 选择标签“转到编辑器”菜单->固定并逐个固定,将尾部和顶部空间引导至Superview(而不是底部空间)

  • 因为你有固定的宽度和动态的高度,所以也有针宽

  • 转到“属性检查器”选项卡,并将行设置为0(表示无限制)

  • 转到size inspector,将内容包围优先级(250/251)设置为低,将内容阻力优先级设置为高(例如-750)


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

    如果将行数设置为0,则将假定有多行。不需要计算。
    yourLabel.numberOfLines = "Your calculation number"