【问题标题】:Adjusting Container View's Height to Match Embedded UITableViewController调整容器视图的高度以匹配嵌入式 UITableViewController
【发布时间】:2019-03-26 07:03:40
【问题描述】:

我正在单个视图控制器中实现多个 uitableview。现在我希望我的容器视图与嵌入式 UITableView 的高度相同。我怎样才能实现它?

【问题讨论】:

  • UITableViews 继承自 scrollView,因此如果内容大小大于提供给它们的窗口,它们可以滚动,所以通常你不会根据嵌入视图增加容器的大小,特别是如果它有scrollView,你的tableView的滚动被禁用了吗?如果是,它们的大小是否固定(我相信这会导致更多麻烦)如果是,那么您可以在容器视图中添加高度约束并为您的嵌入 segue 提供标识符,根据destinationVC 类型更改为 segue 和 prepareforSegue 实施准备约束常数值
  • 我只想显示表格中的前 3 个产品而不滚动。我需要将表格视图内容的高度设置为它的高度。但我卡在嵌入表的容器视图高度上。
  • 如果你的单元格高度是固定的,我已经在我的第一条评论中回答了,实现 prepareForSegue,添加一个标识符以将你的 segue 嵌入故事板,捕获目标 VC,如果目标 VC 是类型您感兴趣的将容器的高度约束常量更改为 3 * 单元格高度,然后在 containerView 上调用 layoutIfNeeded,这就是您所需要的。如果嵌入式视图控制器是静态加载的并且没有发生动态更改,那么您甚至不必实现 prepareForSegue 而是直接在 awakeFromNib 中更新约束或直接在情节提要中设置它
  • 我会试试的。谢谢

标签: ios swift uitableview uicontainerview


【解决方案1】:

我进行了研究,找到了正确的方向 - 具体来说,这不可能像我想象的那样。

没有办法在父视图控制器和子视图控制器的视图之间设置约束 - 无论是在 IB 中还是在代码中

据我所知,有两种方法可以解决这个问题:

不要使用第二个 UIViewController。让你的子视图控制器的根视图成为你自己的实际子视图,并且只有一个 UIViewController。

不要使用自动布局。手动管理子视图控制器视图的框架,并在必要时将委托回调返回给父视图控制器。在这些委托回调中,您的父视图控制器可以对子视图控制器视图的大小变化做出反应。

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 2021-02-14
    • 2016-08-21
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    相关资源
    最近更新 更多