tvOS:CollectionView在模拟器上的界限非常完美,但是在设备上没有屏幕

时间:2017-09-08 03:18:38

标签: swift layout uicollectionview tvos

我有一个奇怪的问题,CollectionView中最左边和最右边的单元格在我自己的电视屏幕边缘外面出血。我已经检查了电视本身的宽高比并且它没有改善,主屏幕上的应用网格是完美的,当在模拟器中运行时它也是完美的。

不能选择在另一台电视上播放。

我还设置了CollectionView的flowLayout来操作项目大小和interSpacing。

let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.itemSize = CGSize(width: (screenWidth/5), height: (screenWidth/6)*1.5)
layout.minimumInteritemSpacing = 0
collectionView!.collectionViewLayout = layout

其余部分在界面构建器中使用自动布局设置。

1 个答案:

答案 0 :(得分:3)

您的电视可能已启用overscan,这意味着边缘周围的所有内容都会被显示屏本身剪掉。

您可以在电视上关闭过扫描(无论如何你应该这样做,因为这样做会更好),但你不能指望所有用户在电视上关闭它。最好的办法是避免将重要内容放在靠近屏幕边缘的位置:将所有重要内容保留在safe area内。

在tvOS 11中,您可能需要查看UIView的safeAreaLayoutGuidesafeAreaInsets属性,这些属性可以帮助您将视图放在安全区域内。