如何使 Swift 中的文本居中?

How do I center text in Swift?

在 Swift 游乐场中,如何将 UILabel 置于 UIViewController 的中心?

当我使用 title.center = CGPoint(x: vc.view.frame.width / 2, y: 20) 时,文本从屏幕上消失了。

这就是问题所在

如果有帮助,这是我的代码。

import UIKit
import PlaygroundSupport


// Set up ViewController and other things
var vc = UIViewController()
vc.view.frame.size.height = 75
vc.view.backgroundColor = .white

let title = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50))
title.textAlignment = .center
title.center = vc.view.center
title.text = "Which code is correct?"
vc.view.addSubview(title)

PlaygroundPage.current.liveView = vc

如果我们在层次结构中谈论顶视图(即视图控制器的视图),这行就足够了:

title.center = vc.view.center

否则,如果您想将 view/label/button/whatever 居中于任何视图控制器视图的子视图中 — 下一个解决方案是通用的:

title.center = CGPoint(x: parentView.bounds.size.width / 2, y: parentView.bounds.size.height / 2)

如果只想水平居中或垂直居中——相应修改CGPoint(x:y:)函数的yx参数:

// Center horizontally but with vertical offset of 20 points
title.center = CGPoint(x: parentView.bounds.size.width / 2, y: 20 - title.bounds.size.height / 2)

swift 游乐场的特殊问题是,视图控制器的实际框架只会正确更新,视图加载/显示在屏幕上后 .这意味着将用于居中标签的行放在用于设置实时取景的行之后应该会有所帮助:

PlaygroundPage.current.liveView = vc
title.center = vc.view.center
vc.view.addSubview(title)