【发布时间】:2018-10-02 11:49:26
【问题描述】:
当我的 UILabel 的字体大小调整为适合标签的宽度时,文本的底部会被切断。这是调试视图的屏幕截图:
UILabel 具有以下特点:
- 系统字体(半粗体,36pt)
- numberOfLines = 1
- 基线调整 = .alignCenters
- translatesAutoresizingMaskIntoConstraints = false
- 自动布局约束:顶、左、右置顶,无底或高约束
- adjustsFontSizeToFitWidth = true, minimumScaleFactor = 0.1
- 默认无文字,初始化后给出文字
- lineBreakMode = .byWordWrapping
附加元素:
- 仅当字体大小确实减小时才会发生这种情况。如果文本较短且适合原始字体大小,则不会被截断。
- 如果我手动更改字体大小以使文本适合,它不会被截断。只有当它自动调整到该字体大小时才会发生这种情况。
没用的东西:
- 使用 .attributedText 而不是 .text 属性
- 调用 sizeToFits、setNeedsLayout()/layoutIfNeeded()
- 标签默认设置长文本
- 尝试 baselineAdjustment 的所有设置(设置为 .none 有效,请参阅答案)
(当我输入这个问题时,我尝试再次更改 baselineAdjustment 设置以确认它不起作用,这一次它起作用了。查看答案。)
【问题讨论】:
-
"bottom/height is free" 所以没有没有高度限制,对吗?
-
@AhmadF 正确(我正在编辑以澄清),但我在输入我的问题时找到了该错误的修复。检查下面的答案。感谢您的帮助!
-
您使用的是哪个字体系列?使用 Arial 或任何常见字体并测试并检查是否出现相同的情况
-
@AbdulRehmanWarraich 谢谢,但可以修复我发布的答案 :-) 谢谢
标签: ios swift autolayout