关于UIImageView帧动画内存无法释放的问题

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];

 
}

 

转载于:https://www.cnblogs.com/xiehan87/p/5038669.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值