iOS 15 UIButton配置标题lineBreakMode不起作用?

ste*_*hen 8 uibutton uikit ios swift

在iOS 14或更早版本中,如果我们想设置一个titleLabel's属性,我们可以简单地使用

button.titleLabel?.lineBreakMode = .byTruncatingTail
Run Code Online (Sandbox Code Playgroud)

或缩小标题文本:

button.titleLabel?.adjustsFontSizeToFitWidth = true
button.titleLabel?.minimumScaleFactor = 0.5
Run Code Online (Sandbox Code Playgroud)

但是更新到iOS 15最新的API后UIButton.Configuration,上面的代码就不再起作用了,按钮只是扩大了高度,这绝对不是我想要的方式,请看下面:

在此输入图像描述

使用 iOS 15 时有什么解决方案可以恢复lineBreakMode吗?minimumScaleFactorUIButton.Configuration

小智 5

从 Xcode 14.3 beta 1 开始,一个新的属性titleLineBreakMode已添加到UIButton.Configuration自身(而不是按钮的titleLabel),这正是我们想要的。

var config  = UIButton.Configuration.filled()
config.titleLineBreakMode = .byTruncatingTail
button.configuration = config

// also adjust font size is working properly
button.titleLabel?.minimumScaleFactor = 0.5
button.titleLabel?.adjustsFontSizeToFitWidth = true
Run Code Online (Sandbox Code Playgroud)