【发布时间】:2018-07-05 06:47:47
【问题描述】:
我有 ViewController 和 collectionView 和 collectionView 底部、顶部、前导、尾随约束到超级视图。在 iPhone 8 上,我的屏幕如下所示:
对于其他设备,一切看起来都很好。但在 iPhone X 上看起来像这样:
我将此代码用于我的单元格:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let offset: CGFloat = 10
let width = collectionView.bounds.width / 3 - offset * 4
let a: CGFloat = width / 2
let b: CGFloat = a * 3 + a * 0.65
let height = b
return CGSize(width: width, height: height)
}
如何解决?
更新
约束:
【问题讨论】:
-
黑屏是什么?
-
删除你的collectionview的顶部,底部,前导和尾部约束,并从安全区域添加顶部,底部,前导和尾部约束它肯定会工作。
-
@dahiya_boy 3 个黑色矩形是 collectionView 单元格
-
@Y_Y 我需要使用
collection-view的前导和尾随约束,如果我向左或向右滚动,我的内容应该从屏幕的左边缘或右边缘显示。或者,如果我使用安全区域,我的内容会从安全区域显示。 -
安全区域在iphone x的情况下是可见的,否则与superview相同。因此,在您的情况下,通过添加尾随和前导约束不会产生任何问题,因为安全区域会影响您的 collectionview 的顶部和底部。
标签: ios swift uiviewcontroller iphone-x