gpt4 book ai didi

swift - 如何在 swift 的 Collection View 中同时显示来自 url 和 uiimage 的图像?

转载 作者:行者123 更新时间:2023-11-28 14:31:18 25 4
gpt4 key购买 nike

我需要在 Collection View 中显示来自 url 和 uiimage 的图像。

场景是图像来自 api,用户可以在 Collection View 中添加其他图像。

这是我现在正在使用的代码?

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

return savedPhotosArray.count + 1

}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = checkOutCollectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath)as! CheckOutCollectionViewCell

if indexPath.row == 0{
let img = UIImageView(frame: CGRect(x: 0, y: 0, width: cell.frame.size.width, height: cell.frame.size.height))
img.layer.cornerRadius = 10
cell.addSubview(img)
img.image = #imageLiteral(resourceName: "plus")
img.backgroundColor = blackThemeColor
}else{
let img2 = UIImageView(frame: CGRect(x: 0, y: 0, width: cell.frame.size.width, height: cell.frame.size.height))
img2.layer.cornerRadius = 10
img2.clipsToBounds = true
cell.addSubview(img2)

if let image = savedPhotosArray[indexPath.row - 1] as? String
{
let imageStr = basePhotoUrl + image
print (imageStr)

let imageUrl = URL(string: imageStr)
img2.sd_setImage(with: imageUrl , placeholderImage: #imageLiteral(resourceName: "car-placeholder"))
}

这里index = 0用于从imagePicker添加图片。

最佳答案

你需要创建一个这样的结构

struct Item {

var isLocal:Bool
var imageNameUrl:String

}

//

var savedPhotosArray  = [Item(isLocal:true, imageNameUrl:"local.png"),Item(isLocal:false, imageNameUrl:"remoteExtension")]

//

也不要在 cellForRowAt 中添加图像,因为单元格是可重用的,这会导致 UI 和内存泄漏,使 imageView 位于单元格 xib 中,或者如果以编程方式仅在 cellForRowAt 中分配

关于swift - 如何在 swift 的 Collection View 中同时显示来自 url 和 uiimage 的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51233559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com