是什么导致 UIButton 标题周围的水平填充?

What causes horizontal padding around title of UIButton?

我以编程方式创建了两个 UIButtons 并将它们限制为相距 2 点(水平)。我看到额外的 space,所以我点击了 Xcode 中的 "Debug View Hierachy" 按钮,这是我看到的:

是什么导致 "abc" 标题周围出现额外的 space?我查看了按钮的一些可疑属性,它们都是零。 (contentEdgeInsets, titleEdgeInsets)

我没有对按钮进行任何操作,除了:

let b = UIButton(type: .system)
b.translatesAutoresizingMaskIntoConstraints = false
b.setTitle("...", for: .normal)

约束看起来像:

b1.centerXAnchor.constraint(equalTo: outer.centerXAnchor)
b2.leftAnchor.constraint(equalTo: b1.rightAnchor, constant: 2)
b2.firstBaselineAnchor.constraint(equalTo: b1.firstBaselineAnchor, constant: 0)  

UIButton 的固有最小宽度 为 30 磅。

因此,如果标题文本短于 30 磅,按钮的标题标签将在按钮的 30 磅框架中水平居中。

您可以将宽度明确设置为小于 30,但是您必须采取一些其他步骤才能使按钮 auto-size 具有更长的标题。