使用 UICollectionViewCompositionalLayout 的 RTL collectionView

RTL collectionView using UICollectionViewCompositionalLayout

我正在尝试找到一种使用 UICollectionViewCompositionalLayout 从右到左 UICollectionView 的方法,但没有相关文档。有人有想法吗?

除了翻转 UICollectionView 和单元格之外,请推荐任何东西。

只需在您的视图控制器中添加以下行。

extension UICollectionViewFlowLayout {
    
    open override var flipsHorizontallyInOppositeLayoutDirection: Bool {
        return true
    }
}

这是 over-ride 的扩展,允许水平翻转以进行 RTL 布局。

有一个技巧对我有用:

    collectionView.transform = CGAffineTransform(scaleX: -1, y: 1)

在 cellForItemAt 中:

    cell.transform = CGAffineTransform(scaleX: -1, y: 1)

这取决于你的用法,如果你在tableviewcell中使用,你必须将它设置为layoutSubviews(),如果你在viewcontroller中使用它,你必须在viewdidload生命周期之后使用

collectionView.semanticContentAttribute = .forceRightToLeft