Ios 如何将纯色图像插入照片库collectionview

Ios 如何将纯色图像插入照片库collectionview,ios,swift,xcode,Ios,Swift,Xcode,我已经实现了在我的UICollectionView中显示照片库图像的代码,但我真的希望我的第6、第7和第12个单元格是纯色的。有可能实现吗?基本上,我需要以某种方式插入单元格,而不是破坏从照片库插入图像的代码 像这样: 我的代码: func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

我已经实现了在我的
UICollectionView
中显示照片库图像的代码,但我真的希望我的第6、第7和第12个单元格是纯色的。有可能实现吗?基本上,我需要以某种方式插入单元格,而不是破坏从照片库插入图像的代码

像这样:

我的代码:

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "photocell", for: indexPath) as! AlbumCollectionViewCell
        cell.image.layer.cornerRadius = 5
        cell.image.clipsToBounds = true
        let asset = images[indexPath.row]
        let manager = PHImageManager.default()
        if cell.tag != 0 {
                manager.cancelImageRequest(PHImageRequestID(cell.tag))
            }
        cell.tag = Int(manager.requestImage(for: asset,
                                            targetSize: CGSize(width: 250.0, height: 250.0),
                                                contentMode: .aspectFill,
                                                options: nil) { (result, _) in
                                                    cell.image.image = result

            })
        return cell
}
我还使用反转图像阵列:

func getImages() {
    let assets = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: nil)
    assets.enumerateObjects({ (object, count, stop) in
       // self.cameraAssets.add(object)
        self.images.append(object)
    })

    //In order to get latest image first, we just reverse the array
    self.images.reverse()

    // To show photos, I have taken a UICollectionView
    self.photosCollectionView.reloadData()
}

问题是,你可以有多种类型的细胞。因此,您可以使用一些显示图像的单元格和其他显示实心色样的单元格。因此,根据这是什么项目,而不是说
collectionView.dequeueReusableCell(使用ReuseIdentifier:“photocell”
,您应该说
collectionView.dequeueReusableCell(使用ReuseIdentifier:“swatchcell”
),然后您应该配置样例而不是配置照片

编辑您添加了评论:

我想在我的图像数组中插入更多的新项,这是[PHAsset]数据类型

哦,所以现在的问题仅仅是数据的模型应该是什么。这很简单:只需使用一种资产或颜色的数据类型,并将其组成一个数组:

enum AssetOrColor {
    case asset(PHAsset)
    case color(UIColor)
}

嗯。如果我要在照片库PHAsset()图像的顶部放置一个纯色单元格(我理解您的答案),这是一个不错的解决方案。我要尝试一下,但我想在我的图像数组中插入更多的新项目,即[PHAsset]数据类型。这稍微复杂一点,但这对于我正在构建的内容来说是完美的。我将在明天澄清我的问题。我试图插入,但这并不容易,因为数组是相集类型。或者可能我完全错了。也许另一种解决方案是在数组中创建空白对象,然后在顶部设置不同的单元格类型。我DK你需要一个联合对象,一个资产或颜色的对象。这很简单。我像你说的那样创建了enum AssetOrCollor,我的数组现在看起来是这样的:“var images=[AssetOrImage]()”。现在我不明白你说我需要联合对象的意思。我做了一项研究,发现有联合()函数不适合我,因为根据Apple文档,如果我不“关心集合中元素的顺序”,我需要使用Set,这是完美的。但我关心它。此外,我无法在getImages()中将'PHAsset'转换为预期的参数类型'AssetImages'函数。嗯,我最近自己开发了解决问题的工作解决方案,但我认为我会用它赢得最佳坏代码实践竞赛(lol)。只需创建var images=[Any](),然后创建另一个不同数据类型的数组并插入到images数组中。当我设置单元格时,我只使用typeOfItem()函数检查数据类型。无论如何,我将尝试理解您的解决方案,并在明天亲自尝试。