大家好,我的内存有问题。我尝试使用Kingfisher将GIF图像显示为UICollectionViewCell。每次我回到之前的ViewController并回到当前的ViewController时,内存正在成长(加倍)。我正在使用RxSwift和一些相关的库。
这是调用giphy api源,并绑定到集合视图:
provider = RxMoyaProvider<Giphy>()
giphyTrackerModel = GiphyTrackerModel(provider: provider, gifUrl: latestGiphyName)
giphyTrackerModel
.trackGiphy()
.bindTo(collectionView.rx.items(cellIdentifier: "SearchCell", cellType: SearchCell.self)) {
(index, giphyDataModel, cell) in
cell.delegate = self
cell.giphy = giphyDataModel
}
.addDisposableTo(disposeBag)
这是我的SearchCell.swift:
import UIKit
import Kingfisher
class SearchCell: UICollectionViewCell {
@IBOutlet weak var gifImageView: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
gifImageView.layer.cornerRadius = 4
gifImageView.layer.masksToBounds = true
self.backgroundColor = Color.lightGray
self.layer.cornerRadius = 4
}
weak var giphy: GiphyDataModel! {
didSet {
if let gifUrl = giphy.images?.downsized?.url {
let url = gifUrl.characters.count != 0 ? URL(string: gifUrl) : URL(string: "")
gifImageView.kf.setImage(with: url)
}
}
}
}
答案 0 :(得分:0)
尝试使用MSStickerView代替UIImageView。它应该减少一点内存使用。也可能与缓存文件有关。您应该检查一下。