0

示例图像

简介:您在此处看到的整个指标表是指标视图控制器中的一个视图。下面有一个几乎相同的绿色表格(如您所见,没有正确显示)。红色区域和绿色区域实际上只是 viewcontroller 视图的容器 UIViews。

问题:我必须为我的项目使用自动布局。这些表的大小是动态的(垂直的)。据我了解,自动布局应该能够自动确定 UIViews 的高度(使用intrinsicContentSize),而不是我手动限制高度。这个例子中表格的实际最佳高度是 192。但是,当调用 sizeThatFits 时,它在 viewcontroller 的视图上返回 405。将更多按钮连接到测试方法后,我发现通过在视图控制器视图的子视图上调用 sizeThatFits ,它正确返回了 192 的总和。因此,我至少可以通过使用方法来手动约束高度来确定sizeThatFits 在子视图上,对吧..?

不幸的是,这个 sizeThatFits 方法似乎只有在视图完全加载到屏幕上后才能工作(这解释了为什么它在使用“更多”按钮测试方法时工作)。如果我尝试在视图加载时自动手动确定 sizeThatFits,它将为所有视图返回 0。当涉及到视图加载的顺序或其他东西时,似乎有一个我不熟悉的问题。这种方法在什么时候真正起作用?

4

0 回答 0