こんにちは、私はXcodeでアプリケーションを作成しています。私はFirebaseから画像をダウンロードし、それらをテーブルビューで表示しています。そこにいくつかの問題があります。しかし、まずコードを表示します。画像をテーブルビューのFiverrからロード
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "customCell", for: indexPath) as! FrontViewCell
cell.contentView.backgroundColor = UIColor.clear
//let whiteRoundedView : UIView = UIView(frame: CGRect(10, 8, self.view.frame.size.width - 20, 149))
let whiteRoundedView: UIView = UIView(frame: CGRect(x: 10, y: 8, width: self.view.frame.width - 20, height: 200))
whiteRoundedView.layer.backgroundColor = CGColor(colorSpace: CGColorSpaceCreateDeviceRGB(), components: [1.0, 1.0, 1.0, 0.8])
whiteRoundedView.layer.masksToBounds = false
whiteRoundedView.layer.cornerRadius = 2.0
whiteRoundedView.layer.shadowOffset = CGSize(width: -1, height: 1)
whiteRoundedView.layer.shadowOpacity = 0.2
cell.contentView.addSubview(whiteRoundedView)
cell.contentView.sendSubview(toBack: whiteRoundedView)
//cell.categoryImageView.image = catImages[indexPath.row]
//print("Product \(allCats[indexPath.row].name)")
cell.categoryLabel.text = allCats[indexPath.row].name
if let n = allCats[indexPath.row].name{
con?.storage?.reference(withPath: "categories/\(n).png").data(withMaxSize: 10 * 1024 * 1024, completion: {
data, error in
if error == nil{
let im = UIImage(data: data!)
cell.categoryImageView.image = im
cell.layoutSubviews()
}
else{
print("Error Downloading Image \(error?.localizedDescription)")
}
})
}
return cell
}
上記のコードは、画像をセル内のimageViewに設定するためのコードです。 問題
- を私はスクロールダウンし、再度アップスクロール、画像が同じ細胞内で異なっています。
- テーブルビューのスクロールは非常に遅いです。
これらは問題です。私はこれをどのように解決できるのか教えてください。 私はライブラリを知っていますSDWebImageしかし、そのライブラリでFirebaseのイメージをダウンロードする方法はわかりません。この問題で私を助けてください。私はこの問題によって非常に疲れています。私は睡眠なしで最後の20時間それを解決しようとしていましたが、できませんでした。私が間違ってやっていることを教えてください。どうすればいいのか教えてください。ありがとう。
これは、キャッシュと関係がある画像が格納されています。あなたはそのためのカスタムクラスを書くべきです。 –
これは画像をキャッシュしていることを知っていますが、私はカスタムクラスを作成して混乱を作りたくありません。あなたは私にいくつかのAPIなどを提案することができます。これは私の努力と時間を削減します。 –