我的表視圖通過每個tableView:cellForIndexPath:
中的SDWebImage(UIImageView的異步圖像下載/緩存類別)加載圖片。爲什麼nil-checking表格視圖單元格屬性會導致我的單元格之一複製另一個單元格?
// 'spot' is a dictionary of this cell's attributes
NSURL* imageURL = [NSURL URLWithString:(NSString*)[spot objectForKey:@"Image"]];
UIImage* placeholderImage = [UIImage imageNamed:@"placeholder.png"];
^加載圖像,但不斷地從緩存中發出請求或拉出。所以我想看看呈現的單元格是否存儲在內存中,所以我只能在需要時提出圖像請求。我通過添加一個簡單的檢查圖像視圖的圖像屬性來解決這個問題。
if (!cell.pictureView.image)
{
NSURL* imageURL = [NSURL URLWithString:(NSString*)[spot objectForKey:@"Image"]];
UIImage* placeholderImage = [UIImage imageNamed:@"placeholder.png"];
[cell.pictureView setImageWithURL:imageURL placeholderImage:placeholderImage options:SDWebImageCacheMemoryOnly];
}
這樣做的作用,並保持我的圖像不必在退出和重新進入應用程序後重新加載。但是在我的一個單元格中有一個故意圖像url(用於調試),圖像 - 曾經保留爲imageNamed:@"placeholder"
- 現在與我的第二個單元格相同。
我很好奇什麼樣的細胞重複使用/緩存魔法導致細胞拍攝前一個細胞的圖片。
什麼是保留單元格屬性的最佳方法,只在需要時設置它們?