UIButton 在粗体文本下的bug

问题说明

在我们使用UIButton, 同时设置了图片和文字,且没有设置固定宽度,采用自动布局时。

把系统【设置】->【辅助功能】->【粗体文本】开关打开,会出现文字和图片的布局有可能重叠,或者文字显示不全的问题。

解决方案

有三种解决方案:

1
2
3
// 通过设置resizableImage解决
image = image.resizableImage(withCapInsets: UIEdgeInsets.zero, resizingMode: UIImage.ResizingMode.tile)
btn.setImage(image, for: .normal)
1
2
// 通过设置UIButton lineBreakMode 解决
btn2.titleLabel?.lineBreakMode = .byClipping
第三种方案:通过计算出文本宽度,给UIButton设置固定宽度,也可以解决这个问题

UIButton

至于是什么原因造成这个问题,不得而知,或许是系统的Bug。

【参考链接】

UIButton 在粗体文本下的系统 bug