UILabel - Multiple Lines



所以我在 Xcode 中有一个标签,可以根据按下的不同按钮将不同的文本加载到其中。 加载到标签中的文本具有不同的长度。 标签足够大,可以容纳所有可以加载的不同文本,但我有一个问题。 当有大量文本时,它会从标签顶部开始加载它,但如果文本只有一行长,它会在标签中垂直居中。 有什么方法可以确保加载到标签中的文本始终从第一行开始?提前谢谢。

如果您使用的是自动布局,标签的高度将自行设置。将顶部、前缘和后缘固定到超级视图,并设置numberOfLines = 0。设置文本时,文本标签的高度将相应调整。

如果随后将下一个子视图的顶部固定到标签的底部,则它们之间的间距将保持不变。

UILabel没有垂直对齐属性可以做到这一点。您可以使用:

[yourLabel sizeToFit];

来实现这一点,但它可能不是您的最佳解决方案,因为它会改变标签的框架。此外,将标签设置为多行:

yourLabel.numberOfLines = 0;

您还可以计算适合文本的CGRect并将其设置为UILabel的新框架。

CGRect boundingRect = [message boundingRectWithSize:CGSizeMake(your_desired_width, MAXFLOAT)
                                            options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
                                            context:nil];

最新更新