iOS-获取容器视图内容的动态高度

时间:2019-02-05 16:20:40

标签: ios swift uiviewcontroller uistackview uicontainerview

在我的使用ContainerView的应用程序中,该应用程序包含以下内容

  • StackView
    • UIView
    • TableView
    • UIView

在某些情况下,我不得不隐藏视图(tableview)。通过以下设置,我可以显示具有动态高度的容器视图

  • view.translatesAutoresizingMaskIntoConstraints = false
  • UITableView contentSize观察者通过更改表格视图高度来实现。

但是在这里,我无法获得containerView内容的动态高度。

我尝试了以下选项来获取容器视图内容的高度,但没有运气

  • containerView.frame.size.height
  • containerView.bounds.size.height
  • stackView.frame.size.height
  • stackView.bounds.size.height
  • 在达到高度之前,将setNeedsLayout()与containterView,stackView一起使用
  • 在获取高度之前用containterView,stackView调用layoutIfNeeded()
  • 试图在override func viewDidLayoutSubviews()override func viewWillLayoutSubviews()中获取containView,stackView的高度

1 个答案:

答案 0 :(得分:0)

最终找到了答案,以下是实现解决方案的步骤

  • 对于StackView,我们必须将底部约束设置为std::string
  • 在StackView中隐藏任何视图之后,我们必须在StackView上应用>= 0
  • 现在,如果您打印堆栈视图框架,它将显示更新的框架结果。