繁体   English   中英

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

[英]Custom collection flow layout for UICollectionView in Swift

我正在使用Swift学习iOS,现在我想创建一个简单的Messenger应用(WhatsApp的非常简单的版本)。 我已经看过所有收藏夹视图视频教程,但仍然无法理解如何创建布局,在该布局中,单元格将位于屏幕的两侧(两个单元格不能排成一行)。 据我了解,我应该采用流程布局。 我像这样覆盖layoutAttributesForElementsInRect:

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子类中重写layoutAttributesForElementsInRect。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM