我的ViewController代码如下所示
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
let titleLabel = UILabel()
titleLabel.text = "Hello World!"
view.addSubview(titleLabel)
titleLabel.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
titleLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor),
titleLabel.topAnchor.constraint(equalTo: view.topAnchor),
titleLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor),
titleLabel.bottomAnchor.constraint(equalTo: view.bottomAnchor),
])
}
}我在等我的“你好世界!”中心对齐。为什么中心不对齐?(垂直方向是居中,但水平方向与左对齐,如下所示。)
p/s:如果我去掉itleLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor),那么它就对齐了。

发布于 2020-02-18 14:05:29
是否希望标签以文本为中心覆盖整个视图()?如果是的话,保持约束的原样,并设置.textAlignment = .center。
我已经将标签的背景色设置为青色,这样你就可以看到发生了什么:

然而,我怀疑你只是希望你的标签集中在视图中。在这种情况下,将约束更改为:
NSLayoutConstraint.activate([
titleLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor),
titleLabel.centerYAnchor.constraint(equalTo: view.centerYAnchor),
])结果:

发布于 2020-02-18 10:50:33
除非我们不改变约束的优先级,否则默认优先级是1000。所以不会自动设置优先级。
对于您的代码,添加这一行,它将工作。
titleLabel.textAlignment = .center发布于 2020-02-19 04:54:11
在iOS 9及更高版本中,UILabel的textAlignment属性的默认值为NSTextAlignment.natural,在iOS 9之前,默认值为NSTextAlignment.left。
如果您希望您的标签以文本为中心覆盖整个视图,那么您的约束是完美的,只需设置。
titleLabel.textAlignment = .centerhttps://stackoverflow.com/questions/60278744
复制相似问题