Я называю API. В зависимости от того, какие данные json я возвращаюсь, я модифицирую свой контроллер View в viewDidLoad()
, чтобы изменить дизайн моих просмотров, чтобы отобразить данные наилучшим образом.Быстрое не уверенное на макетеIfNeeded setNeedsUpdateConstraints или updateConstraints setNeedsLayout
Что я могу сделать, чтобы скрыть некоторые UIViews и устанавливать свои ограничения, чтобы быть .active = ложь, но и изменить некоторые ограничения, например, путем:
let noCButton = NSLayoutConstraint(item: aListTop, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: aListBottom, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)
view.addConstraint(noBidButton)
Тогда как раз перед закрытием viewDidLoad(), где я изменить/отключить некоторые ограничения я называю view.layoutIfNeeded()
Так что мой вопрос теперь в том,
Если изменить/отключить некоторые ограничения или скрыть UIView, я должен всегда вызывать view.layoutIfNeeded()
потом?
Кроме того, мне нужно позвонить view.layoutIfNeeded()
сразу после каждого изменения или я могу просто позвонить его один раз перед закрытием viewDidLoad()?
Я не ошибаюсь в своей консоли в любом случае, но я просто хочу убедиться, что я делаю это правильно. Я также отметил, такие функции, как updateConstraints
но layoutIfNeeded, кажется, работает, Тхо им не 100% уверен, что разница
Заранее спасибо,
Почему я не могу запустить view.layoutIfNeeded()? Он не выводит никаких ошибок прямо сейчас. И так как я только делаю изменения, как только я это делаю в viewDidLoad – user2722667
Извините, не видел ваши изменения. Хорошо, спасибо! Тогда я просто вызову view.setNeedsLayout() в viewDidLoad? Так как я делаю свои изменения там, и я не хочу отображать представление до тех пор, пока не установил свои изменения. – user2722667
Возможно, вам даже не придется вызывать setNeedsLayout, потому что это произойдет после viewDidLoad в любом случае. – jervine10