如何在单行集合视图中显示所选照片

时间:2016-06-22 04:58:54

标签: ios swift uicollectionview uicollectionviewlayout

如何显示uiimagepickercontroller中的所选图像,如显示的图像。我在收集视图上看到一个黑色区域。我甚至不确定使用水平uicollectionview是最好的方法。

Example

1 个答案:

答案 0 :(得分:0)

我认为使用水平UICollectionView是经济实惠的想法。 您可以制作添加图片按钮'如果您将其添加为页脚,则始终位于最后。

为此,请将UICollectionViewFlowLayout子类化并覆盖layoutAttributesForElementsInRect()。

override func layoutAttributesForElementsInRect(rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
    if let layoutAttributesForElementsInRect = super.layoutAttributesForElementsInRect(rect), let collectionView = self.collectionView {

      for layoutAttributes in layoutAttributesForElementsInRect {
            if layoutAttributes.representedElementKind == UICollectionElementKindSectionFooter {

                let section = layoutAttributes.indexPath.section
                let numberOfItemsInSection = collectionView.numberOfItemsInSection(section)

                if numberOfItemsInSection > 0 {
                    let lastCellIndexPath = NSIndexPath(forItem: max(0, numberOfItemsInSection - 1), inSection: section)

                    if let lastCellAttrs = self.layoutAttributesForItemAtIndexPath(lastCellIndexPath) {
                        var origin = layoutAttributes.frame.origin

                        origin.x = CGRectGetMaxX(lastCellAttrs.frame)

                        layoutAttributes.zIndex = 1024
                        layoutAttributes.frame.origin = origin
                        layoutAttributes.frame.size = layoutAttributes.frame.size
                    }
                }
            }
        }

        return layoutAttributesForElementsInRect
    }

    return nil
}