iOS-限制UILabel宽度自适应的最大宽度

Posted kxzhangl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS-限制UILabel宽度自适应的最大宽度相关的知识,希望对你有一定的参考价值。

前言

一个需求,要求UILabel宽度自适应到指定宽的时候然后限制其宽度,不再需要宽度自适应
, 并且需要UILabel后面的控件紧跟其后,如下图
技术图片

好的.直接进入正题
技术图片

UIlabel有一个属性叫preferredMaxLayoutWidth,官方解释是:

  • // Support for constraint-based layout (auto layout)
  • // If nonzero, this is used when determining -intrinsicContentSize for multiline labels
  • //支持基于约束的布局(自动布局)
  • //如果非零,则在为多行标签确定-intrinsicContentSize时使用此方法

所以我们需要设置preferredMaxLayoutWidth = 指定宽,但是这样并不会生效,因为UIlabel默认不换行,这个属性需要UILabel设置换行才可以生效,但是我们又需要限制在一行显示,并且不换行
技术图片

所以需要设置UIlabel的numberOfLines = 0,并限制UIlabel的高度,这样既不会换行,又限制了最大宽度

self.name_lab.preferredMaxLayoutWidth = 170 * kScaleWidth;
self.name_lab.numberOfLines = 0;
self.name_lab.height = 20;

以上是关于iOS-限制UILabel宽度自适应的最大宽度的主要内容,如果未能解决你的问题,请参考以下文章

iOS-UILabel根据文本字体大小计算label宽度;以及自适应高度

iOS UILabel讲解以及根据字符串长度自动适应宽度和高度

iOS UILable 高度自适应

UILabel自适应

如何限制 UILabel 的最大宽度?

调整 UILabel 的大小以适应自定义 UITableViewCell 中的文本,无论宽度如何