無論如何處理或顯示UIImage與緩存和佔位符?如何在uiimage緩存中使用sdimage?
我發現從堆棧交換一個答案,但它因此未下面的鏈接,給我的工作:
Best way to cache images on ios app?
注:我沒有任何URL,因爲我得到PHIMAGE資產庫的圖像對象。
無論如何處理或顯示UIImage與緩存和佔位符?如何在uiimage緩存中使用sdimage?
我發現從堆棧交換一個答案,但它因此未下面的鏈接,給我的工作:
Best way to cache images on ios app?
注:我沒有任何URL,因爲我得到PHIMAGE資產庫的圖像對象。
您可以使用SDWebImage
顯示和緩存圖像非常簡單。
[imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.image_url.com"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
但我沒有任何URL我有一個phimage對象的圖像,所以我不能得到任何URL – SmarterSusheel
您可以使用一個名爲SDWebImage
SDWebImage非常有用的庫自動將緩存所有的圖像,當您提供與sd_setImageWithURL
有效的URL。所以下次你打電話時,會使用緩存系統而不是重新下載鏡像。
例在從github上一個UIImageView
實現:
// Here we use the new provided sd_setImageWithURL: method to load the web image
[cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
但我沒有任何URL我有一個phimage對象的圖像,所以我不能得到任何URL – SmarterSusheel
有平滑的所有圖像的問題,同時滾動的表,但是有重裝電池沒有緩存的問題,我解決了這個的問題問題。
我從PHAsset框架提供的本地標識符中逐個獲取圖像,並將該圖像顯示到單元格中。
對於參考代碼:
PHFetchResult * savedAssets = [PHAsset fetchAssetsWithLocalIdentifiers:@ [本地標識符]選項:無]; [savedAssets enumerateObjectsUsingBlock:^(PHAsset *資產,NSUInteger IDX,BOOL *停止){
//this gets called for every asset from its localIdentifier you saved
PHImageRequestOptions * imageRequestOptions = [[PHImageRequestOptions alloc] init];
imageRequestOptions.synchronous = YES;
imageRequestOptions.deliveryMode = PHImageRequestOptionsResizeModeFast;
[[PHImageManager defaultManager]requestImageForAsset:asset targetSize:CGSizeMake(50,50) contentMode:PHImageContentModeAspectFill options:imageRequestOptions resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
NSLog(@"You get an image from result");
}];
}];
沒有必要緩存,當您使用圖像資源庫。這些圖像在構建時會複製到您的包中,因此它們始終存在。 – Jasper
你的映像在本地捆綁包或服務器上? – rptwsthi
你在使用[PHImageManager](http://nshipster.com/phimagemanager/)嗎? – Jasper