我已经创建了一个选项卡栏控制器,其中包含一个示例视图控制器和一个容器视图。容器嵌入了referencedStoryBoard。

参考情节提要包含一个视图控制器,其中嵌入了collectionView控制器。

当我的应用程序运行时,collectionView单元格高度计算错误。集合视图单元格将隐藏在顶部。
注:1)采集视图滚动方向为水平。在垂直方向上,它运行良好
2)当我不使用tabBar时,collectionView单元格高度计算正确。
您可以在以下链接中找到示例项目:https://drive.google.com/open?id=1GbKC_ZhqQAlcLnD24YgxQTZt2toVprwF
问题在iOS11中工作正常。
发布于 2018-04-05 01:03:08
问题(在我看来):
在启动SampleCollectionViewController时,
collectionView。根据SampleCollectionViewController的大小计算collectionViewCell的大小。SampleCollectionViewController被嵌入到另一个更小的控制器中。SampleCollectionViewController的大小已更改,但collectionView未重新加载,collectionViewCell保持启动大小。collectionViewCell的高度大于屏幕上的SampleCollectionViewController的大小。这就是为什么单元格顶部被隐藏的原因。解决方案:在traitCollectionDidChange:方法中调用invalidateLayout。这意味着当SampleCollectionViewController的大小改变时,计算单元格的大小并更新合适的大小。
SampleCollectionViewController.m
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
[super traitCollectionDidChange:previousTraitCollection];
[self.collectionView.collectionViewLayout invalidateLayout];
}发布于 2018-04-05 00:49:31
在故事板中选择视图控制器。检查是否选择了调整滚动视图插入,然后取消选择它。这就是我解决问题的方法。
发布于 2018-04-05 16:29:33
当我改变设计时,我能够在iOS 10上解决这个问题,在iOS 11上也能很好地工作。

我创建了一个segue来调用storyboard引用,而不是用于storyboard引用的容器视图。由于问题是特定于iOS 10和水平集合视图的,所以我将继续问题中提到的早期设计。
https://stackoverflow.com/questions/49655924
复制相似问题