Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift中UICollectionView的自定义收集流布局_Ios_Swift_Uicollectionview_Uicollectionviewlayout - Fatal编程技术网

Ios Swift中UICollectionView的自定义收集流布局

Ios Swift中UICollectionView的自定义收集流布局,ios,swift,uicollectionview,uicollectionviewlayout,Ios,Swift,Uicollectionview,Uicollectionviewlayout,我正在用Swift学习iOS,现在我想创建一个简单的messenger应用程序(非常简单的WhatsApp版本)。我已经浏览了所有的collection view视频教程,但我仍然无法理解如何创建布局,其中单元格将位于屏幕的两侧(两个单元格不能在一行中)。 据我所知,我应该采用流程布局。我直接重写LayoutAttributesForElements,如下所示: override func layoutAttributesForElementsInRect(rect: CGRect) ->

我正在用Swift学习iOS,现在我想创建一个简单的messenger应用程序(非常简单的WhatsApp版本)。我已经浏览了所有的collection view视频教程,但我仍然无法理解如何创建布局,其中单元格将位于屏幕的两侧(两个单元格不能在一行中)。 据我所知,我应该采用流程布局。我直接重写LayoutAttributesForElements,如下所示:

override func layoutAttributesForElementsInRect(rect: CGRect) -> [AnyObject]? {
    let attributes = super.layoutAttributesForElementsInRect(rect) as! [UICollectionViewLayoutAttributes]
    for attribute in attributes {
        attribute.frame.origin.x = collectionView!.bounds.width - attribute.frame.width
    }
    return attributes
}
现在我的细胞相互覆盖(例如,我有50个细胞,但我只能看到10个,有5个细胞深入)

编辑:如你们所见,每行有5个单元格,所以我总共有10行,而不是50行

我想看看右边的50个细胞

那么,有人能给我一些建议,我该如何实现这个布局呢。
谢谢你的帮助

可能有点晚,但希望有用

1) 如果要显示一列单元格,为什么不使用UITableView


2) 制造两个细胞,一个“我”细胞和一个“其他人”细胞。它们看起来不同:可能颜色不同,但一个单元格的标签向左对齐,另一个单元格的标签向右对齐。使用UICollectionView时,单元格的宽度应大于屏幕的一半,以便自动将其放置在一列中。无需在自定义FlowLayout子类中重写LayoutAttributesForelementsRect。

可能有点晚,但希望有用

1) 如果要显示一列单元格,为什么不使用UITableView


2) 制造两个细胞,一个“我”细胞和一个“其他人”细胞。它们看起来不同:可能颜色不同,但一个单元格的标签向左对齐,另一个单元格的标签向右对齐。使用UICollectionView时,单元格的宽度应大于屏幕的一半,以便自动将其放置在一列中。无需在自定义FlowLayout子类中重写layoutAttributesForElementsInRect。

很难从描述中理解您想看到什么以及看到什么。请用屏幕截图/插图更新您的问题以帮助解释?我看不出您在哪里更改单元格原点的“
y
值。这是移动单元格的唯一方法吗?“集合”视图不应该自动将单元格以相等的空间放置在彼此下面吗?从您的描述中很难理解您希望看到什么以及您确实看到了什么。请用屏幕截图/插图更新您的问题以帮助解释?我看不出您在哪里更改单元格原点的“
y
值。这是移动单元格的唯一方法吗?集合视图不应该自动将单元格以相等的空间放置在彼此下面吗?