UITableViewCell
の機能イメージキャッシュの作成に大きな助けを借りてcellForRowAtIndex
でした。残念ながら、下記のコードでは、1つの画像しか繰り返し表示されません。私はcellForRowAtIndexPath
がforループのようで、それぞれrow
のために再び走っていたという印象を受けました。したがって、私はなぜ1つの画像しか表示されないのだろうかと思っています。UITableViewCellのイメージキャッシュを作成しましたが、1つのイメージしか表示されません。
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "restaurantcell") as? RestaurantTableCell
var oneRestaurant: Restaurant = tablerestaurantarray[indexPath.row]
if let cachedVersion = cache.object(forKey: "image") {
oneRestaurant = cachedVersion
} else {
cache.setObject(oneRestaurant, forKey: "image")
}
cell?.picture?.image = oneRestaurant.value(forKey: "image") as! UIImage?
let restaurant = restaurantArray[indexPath.row]
cell?.name?.text = restaurant.value(forKey: "Name") as? String
return cell!
}
アップデート2:あなたは、異なるオブジェクトに同じNSCacheキー("image"
)を使用
Results from the added breakpoint
セルの高さはどれくらいですか?ストーリーボードのデフォルト画像は何ですか?私が理解しているところから、あなたはクラス「レストラン」からイメージを取得します。あなたはそのクラスも投稿できますか? –
単純な "var image = UIimage?"クラスのために。 – Jon