我有一个视图控制器,它由两个 child 组成UIContainerView
,其中一个是固定宽度,另一个根据纵向和横向模式动态调整其宽度。两者都包含UITableView
s。
出于某种原因,如果屏幕以纵向加载,它会呈现良好。但是,如果它以横向加载然后旋转到纵向,则第二个(动态)表会变得很乱,并认为它比它应该/应该更宽,让您水平滚动它不应该这样做。
tableView 的所有单元格大小都正确,并粘在这个“太宽”的 tableView 的左侧。但是,如果我将 tableview 的背景涂成粉红色,我可以看到整个东西正在延伸到这个太宽的区域。
这让我感到困惑,这里发生了什么。无论视图控制器加载为哪个方向,自动布局都不应该相同吗?
如果我在viewDidRotate...
处理程序中记录宽度,一切似乎都有正确的宽度,但它仍然以这种奇怪的方式呈现。
有没有我可以强制容器视图自行重新布局的方法?
更新:是contentSize
tableView 搞砸了。记录时所有其他宽度都是正确的,但 contentSize.width 是错误的。好消息是我可以手动将其设置回应有的状态,并且一切正常!然而,它并没有回答为什么它首先发生或我做错了什么(如果有的话)的问题。
这是一个屏幕截图: