在自动缩小的UIButton文本之前的换行符

时间:2016-11-29 15:35:14

标签: ios swift xcode uibutton

背景

我正在创建一个应用程序,在其故事板中我有一个UIButton元素。我需要此UIButton的文本自动缩小,因为它会根据视图的大小进行缩放。在storyboard中,它具有以下属性:

properties 1 properties 2

在我的代码中,它说:

guard button.titleLabel != nil else {
    throw AutoshrinkError.noTitleLabel(button: button)
}

button.titleLabel!.adjustsFontSizeToFitWidth = true
button.titleLabel!.numberOfLines = 0
button.titleLabel!.lineBreakMode = NSLineBreakMode.byTruncatingTail
button.titleLabel!.baselineAdjustment = UIBaselineAdjustment.alignBaselines

我知道guard语句已通过(即它下面的代码运行)。

问题

问题是,通过上面的设置,我的按钮最终看起来像这样:

cut off button

在文字前加上换行符。

我尝试过多种方式编辑代码,包括将button.titleLabel!.numberOfLines设置为1,将button.titleLabel!.lineBreakMode设置为NSLineBreakMode.byClipping,或删除关于button.titleLabel!.baselineAdjustment的行。这些变化都没有帮助这种情况。相反,它们会导致更多问题,例如文本根本没有缩小。

如果有人知道如何防止这种换行情节发生,我将不胜感激。

提前致谢!

编辑1

UIButton的约束是: constraints

woodgrainUIImageView,用作背景图片。

1 个答案:

答案 0 :(得分:0)

我明白了!我所要做的就是添加一个简单的行:

button.titleLabel!.baselineAdjustment = UIBaselineAdjustment.alignCenters

我想从@rintaro调整baselineAdjustment this answer

现在我的UIButton看起来像这样:

new UIButton