在视图中居中显示文字-不居中

时间:2019-03-21 20:10:58

标签: ios swift

我正在创建一个Swift Playground,并希望将标签居中。但是,当我执行label.center = view.center时,文本将转到一个奇怪的地方as shown in this screenshot。 (这是最右边的一个;其他的以CGPoints为中心。)这是关于我的视图和标签的viewDidLoad:

override func viewDidLoad() {
    view.backgroundColor = UIColor(red: 186/255.0, green: 198/255.0, blue: 196/255.0, alpha: 1.0)
    view.layer.borderWidth = 1
    view.layer.borderColor = UIColor(red:222/255, green:225/255, blue:227/255, alpha: 1).cgColor
    label = UILabel(frame: .init(x: 0, y: 0, width: 200, height: 200))
    label.textAlignment = .center
    label.text = "To play, make the gestures that the app speaks and then press the green check when you are done."
    label.numberOfLines = 0
    label.font = font
    label.center = view.center
    label.textColor = UIColor(red:102/255, green: 121/255, blue: 118/255, alpha: 1.0)
    view.addSubview(self.label)

其他人说它可以在他们的计算机上运行,​​但是我尝试在2种不同的Mac上运行,但无法运行。由于我正在使用Playgrounds,因此无法使用情节提要。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

由于未及时调整viewDidLoad的视图大小,因此需要在它们居中时将标签居中。例如在viewDidLayoutSubviews

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    label.center = view.center
}