首页 > 解决方案 > NSCollectionViewCompositionalLayout 在 RTL 中完全损坏(从右到左)

问题描述

问题

现代 NSCollectionView 应该很好地支持从右到左的语言,但是我不太明白为什么我在NSCollectionViewCompositionalLayout基于项目的配置中产生的布局在 RTL 中完全被破坏。

请注意,布局在 LTR 中看起来与预期一样,它仅在 RTL 中中断:部分似乎重叠并且项目位置不正确;有时水平 contentSize 也比它应该的大。请参阅下面的图片。

这是显示问题的示例项目: https ://github.com/ggould75/CollectionViewBrokenLayout

这是我布局的核心

private lazy var collectionViewLayout: NSCollectionViewCompositionalLayout = {

    let itemSize = NSCollectionLayoutSize(widthDimension: .absolute(Self.itemSize.width),

                                          heightDimension: .fractionalHeight(1))

    let item = NSCollectionLayoutItem(layoutSize: itemSize)



    let groupSize = NSCollectionLayoutSize(widthDimension: .estimated(Self.itemSize.width),

                                           heightDimension: .fractionalHeight(1))

    let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitems: [item])

            

    let section = NSCollectionLayoutSection(group: group)

    section.contentInsets = NSDirectionalEdgeInsets(top: 0, leading: 10, bottom: 0, trailing: 10)



    let layoutConfiguration = NSCollectionViewCompositionalLayoutConfiguration()

    layoutConfiguration.scrollDirection = .horizontal



    let compositionalLayout = NSCollectionViewCompositionalLayout(section: section, configuration: layoutConfiguration)

    

    return compositionalLayout

}()

它在 LTR 中的外观(正确): 在此处输入图像描述

它在 RTL 中的外观(已损坏): 在此处输入图像描述

我希望它在 RTL 中的外观:

在此处输入图像描述

我试过的

知道我可能做错了什么吗?

谢谢

标签: right-to-leftnscollectionview

解决方案


推荐阅读