iOS Swift 游乐场视图未居中

iOS Swift Playgrounds Views Are Not Centered

所以图片说明了一切。我基本上有一个标题,并将标签的宽度设置为整个视图的宽度,并且文本对齐方式居中。但是,很明显它有点偏右。我认为游乐场视图切断了一部分视图。谁能告诉我如何正确居中 UILabel 吗?谢谢!

import UIKit
import PlaygroundSupport

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let title = UILabel(frame: CGRect(x: 0, y: 5, width: view.frame.width, height: 60))
        title.textAlignment = .center
        title.text = "Hello World!"
        title.font = UIFont.systemFont(ofSize: 30, weight: .bold)
        title.textColor = .white
        self.view.addSubview(title)
    }
}

PlaygroundPage.current.liveView = ViewController()

viewDidLoad 中基于视图控制器的视图框架设置视图框架可能会导致预期的布局,因为在调用 viewDidLoad 时自动布局尚未完成其布局传递。您应该从 viewDidLayoutSubviews 设置标签的框架。例如:

import UIKit
import PlaygroundSupport

class ViewController: UIViewController {
     let titleLabel = UILabel(frame: .zero)

    override func viewDidLoad() {
        super.viewDidLoad()
        titleLabel.textAlignment = .center
        titleLabel.text = "Hello World!"
        titleLabel.font = UIFont.systemFont(ofSize: 30, weight: .bold)
        titleLabel.textColor = .white
        self.view.addSubview(titleLabel)
    }

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        titleLabel.frame = CGRect(x: 0, y: 5, width: view.frame.width, height: 60)
    }
}

PlaygroundPage.current.liveView = ViewController()