Ios Swift中UICollectionView的自定义收集流布局
我正在用Swift学习iOS,现在我想创建一个简单的messenger应用程序(非常简单的WhatsApp版本)。我已经浏览了所有的collection view视频教程,但我仍然无法理解如何创建布局,其中单元格将位于屏幕的两侧(两个单元格不能在一行中)。 据我所知,我应该采用流程布局。我直接重写LayoutAttributesForElements,如下所示:Ios Swift中UICollectionView的自定义收集流布局,ios,swift,uicollectionview,uicollectionviewlayout,Ios,Swift,Uicollectionview,Uicollectionviewlayout,我正在用Swift学习iOS,现在我想创建一个简单的messenger应用程序(非常简单的WhatsApp版本)。我已经浏览了所有的collection view视频教程,但我仍然无法理解如何创建布局,其中单元格将位于屏幕的两侧(两个单元格不能在一行中)。 据我所知,我应该采用流程布局。我直接重写LayoutAttributesForElements,如下所示: override func layoutAttributesForElementsInRect(rect: CGRect) ->
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
值。这是移动单元格的唯一方法吗?集合视图不应该自动将单元格以相等的空间放置在彼此下面吗?