gpt4 book ai didi

ios - Swift 3 附加到 UIImageView

转载 作者:行者123 更新时间:2023-11-28 15:20:56 24 4
gpt4 key购买 nike

我有一个 UIImageView,我想在其中附加来自远程 URL 的图像

到目前为止,它仅适用于一张图片。我只是将 cell.related.image 设置为新图像,并且总是将 1 返回到 collectionView

如何切换到附加图像数组?

有没有办法在函数中进行追加?我是否需要始终在 collectionView 中进行追加?

以后我想在事件监听器中做

var img_uls = ["url1" , "url2", "url3"]

func append_image(_ path: String, _ cell: RelatedCollectionViewCell) {
let url = URL(string: path)

DispatchQueue.global().async {
let data = try? Data(contentsOf: url!) //make sure your image in this url does exist, otherwise unwrap in a if let check / try-catch
DispatchQueue.main.async {
cell.related.image = UIImage(data: data!)
}
}
}

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

return img_uls.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {



let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "RelatedCollectionViewCell", for: indexPath) as! RelatedCollectionViewCell

append_image(img_uls[indexPath.row], cell);


return cell
}

最佳答案

只需拥有包含图像 Url 的字符串数组,并将其作为 numberOfItems 方法传递即可

var img_uls = ["url1" , "url2", "url3"]
//array of strings containing urls

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

return img_uls.count
}

现在你必须迭代你的数组 img_uls,这样你就可以从数组中获取 Url 并获取图像并在 collectionView 单元格中设置。所以,这样做吧

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

append_image(img_uls[indexPath.row], cell);

// indexPath.row starts from (0) and goes to (img_uls.count - 1)

return cell
}

现在你想将图像附加到images 数组

var images = NSMutableData()

func append_image(_ path: String, _ cell: RelatedCollectionViewCell) {

let url = URL(string: path)

DispatchQueue.global().async {
let data = try? Data(contentsOf: url!) //make sure your image in this url does exist, otherwise unwrap in a if let check / try-catch
DispatchQueue.main.async {
images.appendData(data)
cell.related.image = UIImage(data: data!)
}
}
}

您可以使用Kingfisher,而不是使用您自己的追加方法,并处理该追加和所有操作。或 Haenke .它们是轻量级的,而且管理缓存。因此您的滚动会很快。

关于ios - Swift 3 附加到 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46023814/

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