在 UICollectionView 上与内容从右到左对齐

Posted

技术标签:

【中文标题】在 UICollectionView 上与内容从右到左对齐【英文标题】:Aligning right to left on UICollectionView with contents 【发布时间】:2019-05-28 19:41:01 【问题描述】:

我尝试了以下问题:

Aligning right to left on UICollectionView 但它没有达到我的目标。

我尝试了什么:

viewDidLoad():

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

cellForItemAtIndexPath():

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

我当前的CollectionView 在左侧,但我希望它看起来像右侧的CollecitonView

dataSource = ["item1","item2","item3","item4","item5","item6"]

更新:

collectionViewsemanticContentAttribute 更改为.forceRightToLeft

collectionView.semanticContentAttribute = .forceRightToLeft

@RajeshKumar 回答了

我注意到了。 items 两个元素之间的间距太大,例如 item1item2 我怎样才能减少空间和其余的东西? 好的。另一方面,我尝试使用layout.minimumInteritemSpacing = 0,但它对我不起作用,item3 也不是对的。

【问题讨论】:

【参考方案1】:

将collectionView的semanticContentAttribute改为.forceRightToLeft

collectionView.semanticContentAttribute = .forceRightToLeft

有效

【讨论】:

我试过了,但让我再检查一次,因为我的集合视图在表格视图单元格中 @NazmulHasan 我在同一个视图控制器中有 2 个收集视图。它有效 我注意到了。 items 两个元素之间的间距太大,例如item1 and item2 我该如何解决剩下的问题。另一方面,我尝试使用layout.minimumInteritemSpacing = 0,但它对我不起作用。【参考方案2】:

viewDidLoad() 中:

 let alignedFlowLayout = collectionView.collectionViewLayout as? AlignedCollectionViewFlowLayout
 collectionView.transform = CGAffineTransform(scaleX: -1, y: 1)
 [enter link description here][1]alignedFlowLayout?.horizontalAlignment = .left

@Hemang 评论对我有用。

如果您的单元格中有任何子视图,那么您也可以对其进行转换。例如

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

AlignedCollectionViewFlowLayout

【讨论】:

以上是关于在 UICollectionView 上与内容从右到左对齐的主要内容,如果未能解决你的问题,请参考以下文章

iOS:UICollectionView 从右向左滚动

UICollectionView:1 行水平滚动(从右到左),带有来自右侧的新单元格的自定义动画

UICollectionView 图像视图动画

如何使 UICollectionView 像书一样翻转整个页面

iOS UICollectionView无限轮播

iOS UICollectionView无限轮播