我正在创建一个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,因此无法使用情节提要。任何帮助将不胜感激。
答案 0 :(得分:2)
由于未及时调整viewDidLoad
的视图大小,因此需要在它们居中时将标签居中。例如在viewDidLayoutSubviews
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
label.center = view.center
}