向UIButton
添加UITableView
时,我遇到内存问题。以下是我设置UIButton
图像的代码:
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:image forState:UIControlStateNormal];
但是,当我使用imageName:
方法而非imageWithContentsOfFile:
方法时,它的效果非常好。有没有人能解决这个问题呢?
答案 0 :(得分:0)
imageWithContentsOfFile: vs imageNamed:
据我所知,
imageNamed 将图像加载到特殊的系统缓存中,然后使用该图像路径的未来调用将返回缓存中的图像,而不是从磁盘重新加载。
imageWithContentsOfFile 只是将图像加载到您指定的路径,但不进行缓存。对同一图像多次调用imageWithContentsOfFile将导致内存中有多个副本。
关于内存泄漏我不确定在编程中使用大量图像时哪一个更好用...