gpt4 book ai didi

ios - 在 CollectionView Swift 上显示 Gif

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

我的收藏 View 不显示 gifs..我使用 GIPHY..和 SwiftGif 扩展,在 UIImageView 上显示 gifs...这是代码

func searchGif(search: String) {
GiphyCore.configure(apiKey: "hRuR15WOxvhonLAsLhd0R8pDGvJxQYOk")
respondView.isHidden = true
_ = GiphyCore.shared.search(search, media: .gif, offset: 2, limit: 6, rating: .ratedG, lang: .english, completionHandler: { [weak self] (response, error) in
self?.isDataLoading = false
if let error = error {
print("error in response", error)
}
guard
let data = response?.data else { return }
self?.initialize()
for results in data {
let urlString = results.url
guard let url = URL(string: urlString) else { return }
do {
let data = try Data(contentsOf: url)
let foundedGif = GifModel(gifUrl: data, urlString: urlString)
self?.gifModel.append(foundedGif)
} catch let error as NSError {
print(error)
}
}
if self?.gifModel.isEmpty ?? false {
self?.setupNofound()
}
DispatchQueue.main.async {
self?.gifCollectionView.reloadData()
}
})
}

在 Collection View 的委托(delegate)中...

func collectionView(_ collectionView: UICollectionView,
cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = collectionView.dequeueReusableCell(
withReuseIdentifier: GifSearchCollectionViewCell.identifier,
for: indexPath
) as? GifSearchCollectionViewCell else {
return UICollectionViewCell()
}
cell.gifModel = gifModel[indexPath.row]
return cell
}

以及在 numberOfItems 部分中......

我把 gifModel.count 数据工作得很好,我在数组模型上有一个 6 的响应......

在单元格中:

@IBOutlet weak var splashGifView: UIImageView!
var gifModel: GifModel? {
didSet {
guard
let gif = gifModel?.gifUrl else { return }
splashGifView.image = UIImage.gifImageWithData(gif)
}
}

我尝试使用 String 但没有成功,单元格已经创建,但不显示 gif...有人可以帮忙吗?

更新...

       @IBOutlet weak var splashGifView: UIImageView!
var gifModel: GifModel? {
didSet {
guard let gif = gifModel? { return }
let url = gif.gifUrl. // <- this give nill
splashGifView.image = UIImage.gifImageWithData(url)
}
}

url 没有,但在我的模型中我有正确的数据 url...

最佳答案

我想通了!.. GIPHY,有一个非常“入站”的结构,我在响应中得到图像 Gif,就像这样....

results.images?.original?.gifUrl

     for results in data {
let newGif = GifModel(gifUrl: results.images?.original?.gifUrl ?? "", run: false)
self?.gifModel.append(newGif)
}

现在我可以获得带有扩展名“.GIF”的 url 并且 SwiftGif 可以在集合中显示 gif...

关于ios - 在 CollectionView Swift 上显示 Gif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52394488/

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