回答
在寻找任何可能的内置功能后,我遇到了同样的问题,让我能够轻松完成这一任务 - 不幸的是,我找不到这样的事情。我有我的自我做这种伎俩来解决这个问题:
出于演示的目的,我将在本-ugly-的CollectionView,并告诉你应该如何变化:
诀窍的主要思想是镜像!将scaleX更改为-1。
让我们的镜子全收观点:
P.S:斯威夫特3码。
如果您的collectionView没有IBOutlet,请创建一个。在我的情况即时调用它collectionView
在的viewController:
override func viewDidLoad() {
super.viewDidLoad()
collectionView.transform = CGAffineTransform(scaleX: -1, y: 1)
}
现在,它应该是这样的:
“什么鬼?”
到目前为止,实际上,这正是您正在寻找的内容,但您仍然需要为每个单元格内容添加另一个镜像机制。
在您的自定义单元格的类:
override func awakeFromNib() {
super.awakeFromNib()
contentView.transform = CGAffineTransform(scaleX: -1, y: 1)
}
现在看起来应该是这样:
希望它帮助。
很酷:)不优雅的方式...但我留下深刻的印象:) –
这是正确的这不是一个优雅的方式,但至少可以解决它的问题!正如我所提到的,我找不到更好的方法来做到这一点...... –
另一种解决方案是继承UICollectionViewFlowLayout
和实现它是这样的:
class CustomFlowLayout: UICollectionViewFlowLayout {
//MARK: - Private
private func reversedRect(for rect: CGRect) -> CGRect {
let point = reversedPoint(for: rect.origin)
let newPoint = CGPoint(x: point.x - rect.size.width, y: point.y)
return CGRect(x: newPoint.x, y: newPoint.y, width: rect.size.width, height: rect.size.height)
}
private func reversedPoint(for point: CGPoint) -> CGPoint {
return CGPoint(x: collectionViewContentSize.width - point.x, y: point.y)
}
//MARK: - Overridden
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
guard let attributes = super.layoutAttributesForElements(in: reversedRect(for: rect)) else {
return nil
}
for attribute in attributes {
attribute.center = reversedPoint(for: attribute.center)
}
return attributes
}
}
在Interface Builder只需要给它。
实现这一目标最简单的方法是改变集合视图semanticContentAttribute
枚举实例属性的值:
的视图的内容,用来确定 的语义描述是否认为应该翻转当在从左到右和从右到左布局的 之间切换时。
通过设置到.forceRightToLeft
,如下:
// 'viewDidLoad' would be a proper method to do it:
override func viewDidLoad() {
// ...
collectionVIew.semanticContentAttribute = .forceRightToLeft
// ...
}
- 1. 物品对齐从右向左而不是从左向右
- 2. 使UICollectionView从右向左滚动?
- 3. 元素向右而不是左css
- 4. 从左到右显示从右到左的菜单子菜单
- 5. 如何从右向左选择元素?
- 6. UIViewAnimationTransitionCurlUp从横向(左和右)方向从右到左
- 7. Java bitSet开始从右向左或从左向右设置位?
- 8. 使div显示从左向右滑动
- 9. CSS转换是从左到右,而不是从右到左
- 10. DDMenu:使子菜单显示指向左侧而不是右侧
- 11. TTrackbar从右至左,而不是从左到右
- 12. 堆叠酒吧从右到左而不是从左到右
- 13. jCarousel从右向左滚动
- 14. wxWidgets从右到左方向
- 15. 从左向右滑动Div
- 16. 从右向左扩展一个元素
- 17. 如何从右向左滑动Jquery?
- 18. 如何从右向左制作SlickGrid?
- 19. 从右向左滑动菜单> Jquery
- 20. 如何让进度条从右到左而不是从左到右过渡?
- 21. 通过单击左侧和右侧按钮动作,将UICollectionView的单元格滚动到左右方向
- 22. 显示从左到右
- 23. Iphone从右到左显示
- 24. 从右向左设置qTip2方向(RTL)
- 25. 从右向左设置JFrame方向!
- 26. 从右向左动画UIView方向,iPhone
- 27. 向左或向右移动从MATLAB
- 28. 从右向左进行单元格滚动/选取框文本?
- 29. 如何在Android中将图像从左到右从右向左移动?
- 30. 如何使用JS从右向左显示/隐藏div?
你好@BartłomiejSemańczyk。我想出了更简单的方法来做到这一点,我想与你分享,希望它有助于:) –