Добавление ограничения к UILabel программно с NSLayout - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь добавить UILabel в мой ViewController и использовать NSLayout, чтобы ограничить его. Однако UILabel даже не появляется в моем представлении, когда я пытаюсь использовать NSLayout. Кто-нибудь знает решение?

      excersice1label = UILabel()
      excersice1label.textAlignment = .center
      excersice1label.text = "Excercise 1"
      excersice1label.font = UIFont.boldSystemFont(ofSize: 20)
      view.addSubview(excersice1label)

      NSLayoutConstraint.activate([
        excersice1label.centerXAnchor.constraint(equalTo: view.centerXAnchor),
        excersice1label.centerYAnchor.constraint(equalTo: view.centerYAnchor ,constant: -110),
        excersice1label.widthAnchor.constraint(equalToConstant: view.frame.width - 64)
        ])

1 Ответ

2 голосов
/ 09 января 2020

Вам необходимо добавить эту строку:

exercise1label.translatesAutoresizingMaskIntoConstraints = false

Согласно документации Apple :

Если значение этого свойства равно true, система создает набор ограничений, которые дублируют поведение, заданное маской авторазмера представления. Если вы хотите использовать автоматическое расположение для динамического расчета размера и положения вашего представления, вы должны установить для этого свойства значение false, а затем предоставить не двусмысленный, не конфликтующий набор ограничений для представления.

...