iOS-限制UILabel寬度自適應的最大寬度
阿新 • • 發佈:2019-05-02
官方 eterm tps rip 一個 alt lines lin uil
前言
一個需求,要求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寬度自適應的最大寬度