iOS - Получить динамическую высоту содержимого просмотра контейнера - PullRequest
0 голосов
/ 05 февраля 2019

В моем приложении используется ContainerView, который содержит следующие вещи:

  • StackView
    • UIView
    • TableView
    • UIView

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

  • view.translatesAutoresizingMaskIntoConstraints = false
  • С помощью наблюдателя UITableView contentSize путем изменения высоты просмотра таблицы.

Но здесь я не могу получить динамическую высоту содержимого containerView.

Я пробовал ниже варианты, чтобы получить высоту содержимого просмотра контейнера, но не повезло

  • containerView.frame.size.height
  • containerView.bounds.size.height
  • stackView.frame.size.height
  • stackView.bounds.size.height
  • с использованием setNeedsLayout() с containsterView, stackView до получения высоты
  • вызов layoutIfNeeded() с container.View, stackView до получения высоты
  • попытка получения содержимогоView, stackView высоты в override func viewDidLayoutSubviews(), override func viewWillLayoutSubviews()

1 Ответ

0 голосов
/ 01 марта 2019

Наконец-то нашли ответ, ниже приведены шаги по достижению решения

  • для StackView, мы должны установить нижнее ограничение как >= 0.
  • После скрытия любого вида внутриStackView, мы должны применить stackView.setNeedsLayout(), stackView.layoutIfNeeded() это к StackView
  • Теперь, если вы напечатаете кадр стека, он покажет обновленный результат кадра.
...