你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS技巧綜合 >> iOS多圖片下載

iOS多圖片下載

編輯:IOS技巧綜合
[摘要]本文是對iOS多圖片下載的講解,對學習IOS蘋果軟件開發有所幫助,與大家分享。

iOS多圖片下載、在cell裡面下載圖片、做了緩存優化。

(app.icon是圖片地址)
    // 先從內存緩存中取出圖片
    UIImage *image = self.images[app.icon];
    if (image) { // 內存中有圖片
        cell.imageView.image = image;
    } else {  // 內存中沒有圖片
        // 獲得Library/Caches文件夾
        NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
        // 獲得文件名
        NSString *filename = [app.icon lastPathComponent];
        // 計算出文件的全路徑
        NSString *file = [cachesPath stringByAppendingPathComponent:filename];
        // 加載沙盒的文件數據
        NSData *data = [NSData dataWithContentsOfFile:file];
        
        if (data) { // 直接利用沙盒中圖片
            UIImage *image = [UIImage imageWithData:data];
            cell.imageView.image = image;
            // 存到字典中
            self.images[app.icon] = image;
        } else { // 下載圖片
            [self.queue addOperationWithBlock:^{
                // 下載圖片、多線程
                NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:app.icon]];
                UIImage *image = [UIImage imageWithData:data];
                
                [NSThread sleepForTimeInterval:1.0];
                
                // 回到主線程顯示圖片
                [[NSOperationQueue mainQueue] addOperationWithBlock:^{
                    cell.imageView.image = image;
                }];
                
                // 存到字典中
                self.images[app.icon] = image;
                // 將圖片文件數據寫入沙盒中
                [data writeToFile:file atomically:YES];
            }];
     }
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved