【问题标题】:tvOS: CollectionView bounds perfect on simulator, but out of screen on devicetvOS:CollectionView 在模拟器上完美,但在设备上超出屏幕
【发布时间】:2018-02-16 21:15:28
【问题描述】:

我有一个奇怪的问题,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

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

【问题讨论】:

    标签: swift layout uicollectionview tvos


    【解决方案1】:

    您的电视可能打开了overscan,这意味着边缘周围的所有内容都被显示器本身剪裁了。

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

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

    【讨论】:

    • 感谢您的提示,目前这是我仅在内部使用的应用程序(不打算将其放在商店中),但是是的,我已经在使用 tvOS 11,所以我会看看那
    猜你喜欢
    • 1970-01-01
    • 2015-09-20
    • 2021-11-02
    • 1970-01-01
    • 2023-03-09
    • 2013-11-24
    • 1970-01-01
    • 2011-12-24
    相关资源
    最近更新 更多