码迷,mamicode.com
首页 > 其他好文 > 详细

UIImageView帧动画清除缓存图片,防止图片占用内存太多

时间:2014-10-15 11:23:10      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:uiimageview   uiimageview帧动画   清除缓存   提高效率   

我们在使用UIImageView帧动画时会碰到加载到内存的图片不会自动释放,占用很多的内存,这时我们可能使用 UIImage imageWithContentsOfFile 并配合 imageView.animationImages = nil; 来清理不用的缓存动画图片。具体如下:

UIImageView帧动画相关属性和方法:

需要播放的序列帧图片数组(里面都是UIImage对象,会按顺序显示里面的图片)
@property(nonatomic,copy) NSArray *animationImages; 

帧动画的持续时间
@property(nonatomic) NSTimeInterval animationDuration;

帧动画的执行次数(默认是无限循环)
@property(nonatomic) NSInteger animationRepeatCount; 

开始执行帧动画
- (void)startAnimating;

停止执行帧动画
- (void)stopAnimating;

是否正在执行帧动画
- (BOOL)isAnimating;

例:加载动画图片的方式
// 1.加载所有的动画图片
- (void)runAnimationWithCount:(int)count name:(NSString *)name
{
    if (self.imageView.isAnimating) return;
    
    // 1.加载所有的动画图片
    NSMutableArray *images = [NSMutableArray array];
    
    for (int i = 0; i
        // 计算文件名
        NSString *filename = [NSString stringWithFormat:@"%@_d.jpg", name, i];
        // 加载图片
        
        // imageNamed: 有内存缓存直到程序退出才释放(传入文件名)
        // UIImage *image = [UIImage imageNamed:filename];
        
        // imageWithContentsOfFile: 没有缓存,自动释放(传入文件的全路径)
        NSBundle *bundle = [NSBundle mainBundle];
        NSString *path = [bundle pathForResource:filename ofType:nil];
        UIImage *image = [UIImage imageWithContentsOfFile:path];
        
        // 添加图片到数组中
        [images addObject:image];
    }
    self.imageView.animationImages = images;
    
    // 2.设置播放次数(1次)
    self.imageView.animationRepeatCount = 1;
    
    // 3.设置播放时间
    self.imageView.animationDuration = images.count * 0.05;
    
    [self.imageViewstartAnimating];
    
    // 4.动画放完1秒后清除内存
    CGFloat delay = self.tom.animationDuration;
    [self.tom performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:delay];
}

UIImageView帧动画清除缓存图片,防止图片占用内存太多

标签:uiimageview   uiimageview帧动画   清除缓存   提高效率   

原文地址:http://blog.csdn.net/zhangping871/article/details/40106905

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!