A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 叶子哥 中级黑马   /  2016-6-13 00:15  /  1001 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


   关于Tom猫的小项目,网上一搜一大堆.大部分都是最基础的实现,没有进行性能上的优化,比如说懒加载,图片的缓存问题,以及对图片的重采集问题.   如果没有考虑到以上问题,那么这个项目就是不太完整的APP,一旦运行起来,会瞬间把内存提高200M及以上.
   本人经过一番斟酌完善后,才敢露面把这个小项目拿出来献丑了...


先看疗效:
                             

部分主要代码如下:
  1. //播放动画效果的方法
  2. - (void)playAnimationWithCount:(int)count andPrefixName:(NSString *)name{
  3.    
  4.     if(self.imgView.isAnimating){
  5.    
  6.         return;
  7.     }
  8.    
  9.     NSMutableArray *imgArray = [NSMutableArray array];
  10.    
  11.     for (int i = 0; i < count; i++) {
  12.         
  13.         NSString *imgName = [NSString stringWithFormat:@"%@_%02d.jpg",name,i];
  14.         NSString *imgPath = [[NSBundle mainBundle] pathForResource:imgName ofType:nil];
  15.         UIImage *image = [UIImage imageWithContentsOfFile:imgPath];
  16.         
  17.         UIImage *newImage = [self getImage:image andSize:[UIScreen mainScreen].bounds.size];
  18.         
  19.         [imgArray addObject:newImage];
  20.     }
  21.    
  22.     self.imgView.animationImages = imgArray;
  23.     self.imgView.animationDuration = count * 0.1;
  24.     self.imgView.animationRepeatCount = 1;
  25.     [self.imgView startAnimating];
  26.    
  27.     //必须把创建的数组,在播放动画完成后,置为nil,进行释放.
  28.     [self.imgView performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:count * 0.1];
  29.    
  30. }

  31. //在子线程中完成对图片的重采集
  32. - (UIImage *)getImage:(UIImage *)image andSize:(CGSize)size{
  33.    
  34.     UIGraphicsBeginImageContext(size);
  35.     CGRect imageRect = CGRectMake(0, 0, size.width, size.height);
  36.     [image drawInRect:imageRect];
  37.     UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
  38.     UIGraphicsEndImageContext();

  39.     return newImage;
  40. }
复制代码
如果需要本项目的Demo 的童鞋,请留言,到时  找个时间上传,共享给大家,一起交流.....


3 个回复

倒序浏览
支持一下.
回复 使用道具 举报
好厉害啊
回复 使用道具 举报
哇塞   好厉害的样子...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马