#ios #swift
#iOS #swift
Вопрос:
Я создаю Swift Playground и хотел бы расположить метку по центру. Однако, когда я это сделаю, label.center = view.center
текст переместится в странное место, как показано на этом скриншоте . (Это тот, который находится в крайнем правом углу; остальные расположены по центру с помощью 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, и это не сработало. Поскольку я работаю с игровыми площадками, я не могу использовать раскадровку. Любая помощь была бы высоко оценена.
Ответ №1:
Поскольку со временем, которое viewDidLoad
называется views, размеры изменяются неправильно, вам нужно центрировать надпись, когда это происходит. Например, в viewDidLayoutSubviews
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
label.center = view.center
}