Swift TableView节页脚不';t在旋转后调整其宽度

Swift TableView节页脚不';t在旋转后调整其宽度,swift,uitableview,uiview,Swift,Uitableview,Uiview,我有一个表格视图,每个部分都有页眉和页脚。 当设备旋转时,页眉会调整大小以适应表格的宽度,但页脚仍保持纵向宽度 我尝试在xib文件中设置一个较大的宽度,它对页眉有效,但对页脚无效 我还试着在中重新加载数据 viewWillTransitionToSize 它可以工作,但我觉得这不是最好的方式,它在旋转时也有奇怪的动画。您可以使用viewWillLayoutSubviews()。这应该很有帮助,但只要视图控制器视图即将布局其子视图,就会基本上调用它 因此,您的代码将如下所示: override

我有一个表格视图,每个部分都有页眉和页脚。 当设备旋转时,页眉会调整大小以适应表格的宽度,但页脚仍保持纵向宽度

我尝试在xib文件中设置一个较大的宽度,它对页眉有效,但对页脚无效

我还试着在中重新加载数据

viewWillTransitionToSize

它可以工作,但我觉得这不是最好的方式,它在旋转时也有奇怪的动画。

您可以使用
viewWillLayoutSubviews()
。这应该很有帮助,但只要视图控制器视图即将布局其子视图,就会基本上调用它

因此,您的代码将如下所示:

override func viewWillLayoutSubviews() {
   super.viewWillLayoutSubviews()
   if UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication().statusBarOrientation) {
      //here you can do the logic for the cell size if phone is in landscape
   } else {
         //logic if not landscape 
     }
 self.tableView.reloadData()
}

您可以使用
viewWillLayoutSubviews()
。这应该很有帮助,但只要视图控制器视图即将布局其子视图,就会基本上调用它

因此,您的代码将如下所示:

override func viewWillLayoutSubviews() {
   super.viewWillLayoutSubviews()
   if UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication().statusBarOrientation) {
      //here you can do the logic for the cell size if phone is in landscape
   } else {
         //logic if not landscape 
     }
 self.tableView.reloadData()
}

我估计很快就解决了。
我不知道为什么,但在那之后,页脚的大小正确调整了。

我用EstimateDroweight解决了这个问题。
我不知道为什么但是在那之后,页脚的大小已正确调整。

如果我在同一方法中将
tableView.ContentSize
设置为某个任意值,是否知道为什么会反复触发
viewWillLayoutSubviews
?如果我将
tableView.ContentSize
设置为某个值,是否知道为什么会反复触发
viewWillLayoutSubviews
同一方法中的任意值?