在动态 UITableViewController 的 header 中嵌入静态 UITableViewController

Embedding a static UITableViewController in the header of a dynamic UITableViewController

我想显示一个 tableview,其中有一个静态部分,下面是一个动态部分。按照 SO 的建议,我做了以下事情:

可以,但是 header 视图嵌入 B 拼命保持默认高度 44 点,这显然不是我想要的。

AprepareForSegue 中:我正确地将我的 UITableViewController 作为目的地 vc,但它的 preferredcontentsize 是 (0,0)。容器视图没有约束,我似乎无法在 Storyboard 中添加任何内容。如果我检查目的地 vc 的 tableView,我看到它的大小是 (600,73),可能意味着它还没有被布置。

如何为我的嵌入式视图设置正确的高度?

table 视图(控制器)不对 header 的大小使用自动布局。当设置 header 视图时,它有一个特定的大小,并且该大小将被保持。目前您的 header 视图是从情节提要中添加的,因此它永远不会改变大小。

您需要布局您的静态 table 视图内容,或计算它需要的大小,然后添加一个合适大小的容器视图作为 header。任何时候需要更改大小,您都需要删除旧的 header、调整大小,然后添加新的 header.