Какой рекомендуемый метод переопределения UIViewController, где ограничения могут быть инициализированы? - PullRequest
0 голосов
/ 25 мая 2019

Я создаю пользовательский интерфейс программно.Я инициализирую пользовательский интерфейс и добавляю его как подпредставление в методе loadView().Я классифицировал метод как:

initUI()
initConstraints()
initStyle()

Я ищу правильный метод переопределения, где каждый из них может быть помещен в UIViewController.

override func loadView() {
    super.loadView()
    initUI()
}

func initUI() {
    view = UI.view(frame: UIScreen.main.bounds)
    view.addSubview(scrollView)
}

func initConstraints() {  // Where to place this?
    NSLayoutConstraint.activate([]) // ..
}

Где разместить initConstraints()

Ответы [ 2 ]

2 голосов
/ 25 мая 2019

Важно то, что представления, контролируемые ограничениями, были добавлены в иерархию представлений до создания ограничений.

Если вы создаете и активируете ограничения в initConstraints(), вам следует вызвать егосразу после добавления представлений в иерархию представлений, что выполняется в loadView() или viewDidLoad().

. Вы можете позвонить initConstraints() в конце initUI() или после вызова initUI().

1 голос
/ 25 мая 2019

В вашей функции установки ограничений не забудьте вызвать scrollView.translatesAutoResizingMaskIntoConstraints = false.Сразу после того, как вы сделали view.addSubview(scrollView), вы можете вызвать функцию ограничений.

Но да, если вы хотите, чтобы они изменились позже, вы должны установить ее в viewDidLayoutSubviews().

...