iOS 10 GM 嵌入的 UITableView 和 UICollectionView contentSize 错误和滚动指示器不显示

iOS 10 GM embedded UITableView and UICollectionView contentSize wrong and scroll indicators not showing

我的 UI 有一个带有两个嵌入式视图的视图控制器,如下所示:

-----------------
|        |      |
|  List  | Grid |
|        |      |
-----------------

列表视图有 UITableView,网格有 UICollectionView。两者都在 iOS 9.

中工作正常

在iOS10中,我有两个问题:

还有其他人遇到过嵌入式视图控制器中滚动视图的这些问题并且知道如何解决吗?

注意:我觉得这可能与旧(新)autoresizing/springs 和 struts 系统有关,以及在 Storyboard 中作为自定义对象添加的视图被调整为 1000x1000 的奇怪行为。

问题是我使用另一个视图(在本例中是工具栏)的 .frame 属性 来计算 tableView 的 contentInsets。该视图的框架在 viewDidLoad 中被查询(可能在设置之前)并返回 1000x1000。我已经用约束替换了 .frame 属性 的所有查询,它帮助我解决了所有这些 iOS 10 个大小问题。

之前致电layoutIfNeeded。 此问题出现在 XCode 8。 我在 willDisplayCell.

中遇到了同样的问题

这是 Xcode8 问题,只需将故事板 属性 "Opens In" 更改为 "XCode 7.x" 并恢复为 XCode 7.

您的视图将在还原后获得正确的值。