我目前正在使用 UIImageView 根据用户按下的按钮为一系列图像设置动画。我在 NSArrays 中创建了大约 5 组不同的图像,例如:
-(void)initiateAnimations {
punchani = [NSArray arrayWithObjects:
[UIImage imageNamed"punch0001.png"],
[UIImage imageNamed"punch0002.png"],
[UIImage imageNamed"punch0003.png"],
[UIImage imageNamed"punch0004.png"],
[UIImage imageNamed"punch0005.png"],
[UIImage imageNamed"punch0006.png"],
[UIImage imageNamed"punch0007.png"],
[UIImage imageNamed"punch0008.png"],
[UIImage imageNamed"punch0009.png"],
[UIImage imageNamed"punch0010.png"],
[UIImage imageNamed:@"punch0011.png"],
[UIImage imageNamed:@"punch0012.png"],nil];
}
然后我使用标准动画代码将它们循环一次:
player.animationImages = punchani;
player.animationDuration = 0.50;
player.animationRepeatCount = 1;
[player startAnimating];
但是,当我将越来越多/不同的图像加载到 UIImageView 中时,我最终会得到一个内存警告输出,如下所示将我的实际可执行文件替换为“appname”)
2013-03-15 20:52:23.065 AppName[2080:907] Received memory warning.
我知道这可能会发生,但 ARC 禁止我释放数组。我该如何解决这个泄漏?谢谢
Best Answer-推荐答案 strong>
UIImage imageNamed:缓存图片并按照自己的时间表释放内存。利用
+ (UIImage *)imageWithContentsOfFileNSString *)path 直接加载内存
Try this answer as well.动画结束时删除图像数组
关于iphone - iOS - UIImageView 动画内存泄漏?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/15445372/
|