如何使用自动布局在 iOS 中根据文本长度更改 UILabel 宽度
Posted
技术标签:
【中文标题】如何使用自动布局在 iOS 中根据文本长度更改 UILabel 宽度【英文标题】:How to change UILabel width based on text length in iOS Using Auto-Layouts 【发布时间】:2016-06-14 04:18:17 【问题描述】:我想显示两个UILabel
's,但是UILabel
's 具有可变文本长度根据 textsize UIlabel
's 宽度需要增加使用自动布局。
为此,我在下面为UIlabel
's 写了自动布局
第一个标签:
1)leading Space
2)Top space
3)Width
4)height
5)Horizontal spacing
第二个标签:
1)Trailing space
2)Top space
3)Width
4)height
我们怎样才能做到这一点?
请帮帮我。
我的代码:
textLabel1.numberOfLines = 0
textLabel1 .sizeToFit()
textLabel1.text = "asdfdsfdghjgjhkhkjlhjkhjk"
textLabel2.numberOfLines = 0
textLabel2 .sizeToFit()
textLabel2.text = "asdfdsfdghjgjhkhkjlhjkhjk"
【问题讨论】:
如果您只需要uilabel
扩展宽度?
是基于文本大小需要扩展
你能看到你的设计XIB或故事板吗?
我正在使用故事板
【参考方案1】:
选择First UILabel
,设置Leading、Top、bottom并设置固定宽度,然后进入size Inspector -> 选择fixed width constraints -> 关系 -> 选择大于或等于,示例如下,
选择第二个UILabel
,设置Leading、Bottom、固定宽度,然后上面同样的流程要执行,
希望对你有帮助
【讨论】:
大于或等于表示如果您的标签宽度为 42,如果您设置大于或等于根据您的文本扩展全屏宽度,其范围较大宽度 >= 42,但其固定为 42 和仅以上。 小于或等于意味着如果您的标签宽度为 240 并且是固定的,如果您设置小于或等于,则 240 是最大值但您的文本很小,它会根据您的自动更改宽度大小文本。如果您的文本高于 240 则其不可见全文, 小于或等于的例子是聊天应用,Whats App,任何聊天检查它。好的,您了解上述限制是否有效 嗨,我有一个小甜甜圈吗? 告诉我你的甜头是什么?【参考方案2】:首先您需要将UILabel
的属性numberOfLines
设置为零并将文本换行设置为自动换行。然后给出所需的约束。
如果你没有得到想要的结果,那么你需要通过boundingRectWithSize:...
方法计算标签的动态高度,并相应地给出高度约束。
【讨论】:
以上是关于如何使用自动布局在 iOS 中根据文本长度更改 UILabel 宽度的主要内容,如果未能解决你的问题,请参考以下文章