如何使 UILabel 调整大小以适合文本
How to make UILabel resize to fit text
我有一个 UILabel,我已将其布置在以视图为中心的故事板中。它有一些初始文本 "tap to login".
我将标签的值更改为用户登录后的名称。执行此操作后,标签不再居中,因为 UILabel 没有更改大小。
我如何在界面生成器中使用自动布局来做到这一点?
我猜标签没有获取高度和宽度,请考虑提供这些约束,然后当您的文本更改时使用此方法确定高度和宽度:
func labelSizeWithString(text: String, maxWidth : CGFloat,numberOfLines : Int) -> CGRect{
let label = UILabel(frame: CGRectMake(0, 0, maxWidth, CGFloat.max))
label.numberOfLines = numberOfLines
label.text = text
label.sizeToFit()
return label.frame
}
您可以将 UILabel
frame.width
设置得更大,也许与屏幕宽度相同。
然后你设置
label.textAlignment = NSTextAlignmentCenter
1.showing 标签的初始文本
2.After 按下按钮更改文本,显示在屏幕中间 3.Look 约束第三个图像,给定两个约束 1.top 以在容器中查看 2.horizontally 中间
另一件事,如果你给标签固定宽度,改变关系大于等于。[点击宽度约束,看到右上角那里改变关系
查看此截图
1 首先select 你的标签宽度限制
2 设置关系大于等于
3这里设置默认常量值我设置为10
当您更改标签文本时,它会根据文本更改标签的大小。希望对您有所帮助:)
我有一个 UILabel,我已将其布置在以视图为中心的故事板中。它有一些初始文本 "tap to login".
我将标签的值更改为用户登录后的名称。执行此操作后,标签不再居中,因为 UILabel 没有更改大小。
我如何在界面生成器中使用自动布局来做到这一点?
我猜标签没有获取高度和宽度,请考虑提供这些约束,然后当您的文本更改时使用此方法确定高度和宽度:
func labelSizeWithString(text: String, maxWidth : CGFloat,numberOfLines : Int) -> CGRect{
let label = UILabel(frame: CGRectMake(0, 0, maxWidth, CGFloat.max))
label.numberOfLines = numberOfLines
label.text = text
label.sizeToFit()
return label.frame
}
您可以将 UILabel
frame.width
设置得更大,也许与屏幕宽度相同。
然后你设置
label.textAlignment = NSTextAlignmentCenter
1.showing 标签的初始文本
2.After 按下按钮更改文本,显示在屏幕中间 3.Look 约束第三个图像,给定两个约束 1.top 以在容器中查看 2.horizontally 中间
另一件事,如果你给标签固定宽度,改变关系大于等于。[点击宽度约束,看到右上角那里改变关系
查看此截图
1 首先select 你的标签宽度限制
2 设置关系大于等于
3这里设置默认常量值我设置为10
当您更改标签文本时,它会根据文本更改标签的大小。希望对您有所帮助:)