<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      iOS UIImage DownLoad圖片的下載緩存全部在此

               iOS圖片的下載緩存全部在此
      分類: iOS編程 2012-11-03 21:15 2075人閱讀 評論(2) 收藏 舉報
      注意: 我的文章只寫給自己看
      ----------------------------------------------------------------------------------------
      (一)這部分(感覺out了), 但是還是保留,  算是學習的痕跡.
      ----------------------------------------------------------------------------------------
      (1)最簡單的下載,顯示圖片的方法: 
      [plain] view plaincopy
         UIImageView *imageView = [[UIImageView alloc] initWithFrame:[self.view bounds]];  
         imageView.image = [self loadImageFromUrl:@"http://storage.live.com/items/72A00BF5A838647C!1616?filename=meinv004.jpg"];  
         [self.view addSubview:imageView];  
           
         -(UIImage*)loadImageFromUrl: (NSString*)url  
      {  
          NSURL  *imageUrl = [NSURL URLWithString:url];  
          NSData *imageData = [NSData dataWithContentsOfURL:imageUrl];  
          UIImage *image = [UIImage imageWithData:imageData];  
          return image;  
      }  
          
      這種最簡單的圖片加載方式阻塞了main線程. 使得流程不能流暢進行.
      
      
      (2)開辟線程來解決這個問題.
      
      [plain] view plaincopy
         // set imageview  
         UIImageView *imageView = [[UIImageView alloc] initWithFrame:[self.view bounds]];  
         imageView.backgroundColor = [UIColor yellowColor];  
         imageView.tag = imageView_tag;  
         [self.view addSubview:imageView];  
           
         // load image in background  
         NSString *url = IMAGE_URL;  
         [self performSelectorInBackground:@selector(loadImageFromUrl:) withObject:url];  
           
        
        
      -(void)loadImageFromUrl: (NSString*)url {  
          NSURL  *imageUrl = [NSURL URLWithString:url];  
          NSData *imageData = [NSData dataWithContentsOfURL:imageUrl];  
          [self performSelectorOnMainThread:@selector(updateImageView:) withObject:imageData waitUntilDone:NO];  
      }  
      -(void) updateImageView:(NSData*) data {  
          UIImageView *imageView = (UIImageView *)[self.view viewWithTag:imageView_tag];  
          imageView.image = [UIImage imageWithData:data];  
      }  
      
      
      并且只能在main線程中設置UI的內容, 所以代碼量增加了較多. 代碼量暫且不管, 這里還有一個比較嚴重的問題就是每次都要加載圖片, 
      
      
      使用SDWebImage: 
      [plain] view plaincopy
      #import <SDWebImage/UIImageView+WebCache.h>  
      [imageView setImageWithURL:[NSURL URLWithString:[_objects objectAtIndex:indexPath.row]]  
                        placeholderImage:[UIImage imageNamed:@"placeholder.png"]];  
      SDWebImage可以實現: 
      *下載和緩存圖片.
      *相同的url不會被重復下載.
      *壞的url不會一直請求.
      
      使用HJCache:
      [plain] view plaincopy
      // 目前HJCache不支持ARC, 所以這是個問題.  
      
      -----------------------------------------------------------------------------------------------------------------
      (二)多線程初步實現TableView的圖片顯示(之前用第三庫老是不穩定) 這個算是比較滿意的.
      ------------------------------------------------------------------------------------------------------------------------
      [plain] view plaincopy
      @interface c:NSOperation  
        
      @property NSString *url;  
      @property NSString *imageName;  
      @property UIImage *image;  
      @property UIImageView *delegate;  
        
      -(void) main;  
      -(id) initWith:(NSString *)url imageName:(NSString *)imageName delegate:(UIImageView *)delegate;  
        
      @end  
        
      @implementation c:NSOperation  
      @synthesize url = _url,imageName=_imageName, image=_image, delegate=_delegate;  
        
      -(id) initWith:(NSString *)url imageName:(NSString *)imageName delegate:(UIImageView *)delegate{  
          if (self = [super init]) {  
              self.url = url;  
              self.imageName = imageName;  
              self.delegate = delegate;  
          }  
          return self;  
      }  
        
      -(void) main{  
          //  
          NSString *cachefile = [NSTemporaryDirectory() stringByAppendingPathComponent: self.imageName];  
          NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:self.url]];  
          [data writeToFile:cachefile atomically:YES];  
            
          //  
          self.image = [UIImage imageWithData:data];  
          [self performSelectorOnMainThread:@selector(u) withObject:nil waitUntilDone:NO];  
      }  
      -(void)u{  
          [self.delegate setImage:self.image];  
      }  
      
      [plain] view plaincopy
      queue = [[NSOperationQueue alloc] init];//這是成員隊列的實例化  
      設置TableView cell中的圖片:
      [plain] view plaincopy
      NSString *filename = [NSString stringWithFormat:@"%d", indexPath.row];  
      NSString *cachefile = [NSTemporaryDirectory() stringByAppendingPathComponent: filename];  
      UIImage *image = [UIImage imageWithContentsOfFile:cachefile];  
      if (image) {  
          cell.imageView.image = image;  
      } else {  
          c *o = [[c alloc] initWith:[_objects objectAtIndex:indexPath.row] imageName:[NSString stringWithFormat:@"%d",indexPath.row] delegate:cell.imageView];  
          [queue addOperation:o];  
          cell.imageView.image= [UIImage imageNamed:@"placeholder.png"];  
      }  
      
      注: 保存一下測試圖片  urls

      http://blog.csdn.net/deep_explore/article/details/8144613

      原網址

      posted on 2013-12-10 17:18  ACM_Someone like you  閱讀(923)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 国产麻豆md传媒视频| 国产精久久一区二区三区| 亚洲一区二区三级av| 广昌县| 亚洲熟伦熟女新五十熟妇| 久久蜜臀av一区三区| 国产精品视频亚洲二区| 五指山市| 性色av无码久久一区二区三区| 狠狠亚洲色一日本高清色| 线观看的国产成人av天堂| 日韩福利视频导航| 久爱www人成免费网站| 久久男人av资源站| 老司机久久99久久精品播放免费| 国产日产亚洲系列最新| 欧美亚洲综合久久偷偷人人| 亚洲高清成人av在线| 新乐市| 国产精品白丝久久av网站| 蜜臀视频在线观看一区二区| 日本一道一区二区视频| 色婷婷av久久久久久久| 亚洲欧美在线一区中文字幕| 精品 日韩 国产 欧美 视频| 日本高清视频网站www| 又黄又刺激又黄又舒服| 精品亚洲无人区一区二区| 精品无码国产污污污免费| 国产亚洲精品97在线视频一| 亚洲成av人片在www鸭子| 国产高清在线a视频大全| 亚洲日本韩国欧美云霸高清| 国产成人人综合亚洲欧美丁香花| 亚洲www永久成人网站| 自拍偷自拍亚洲精品情侣| 好紧好滑好湿好爽免费视频| 日韩有码精品中文字幕| 成人午夜视频在线| 人妻聚色窝窝人体WWW一区 | 亚洲熟妇中文字幕五十路|