我面临的问题是垂直添加一堆图像,并使整个图像可滚动。图像为 768x768。我为此使用 UITableView 。
首先,我尝试通过以下方法使单个单元格出队来简单地做到这一点:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
由于我的设备只能垂直放置一张半这样的图像 - 每次即将加载新图像时我都会遇到延迟。
所以......我想我只是通过在应用程序加载时将所有单元缓存在一个数组中来测试事情。所以现在在我检索单元格的方法中看起来像这样:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
PhotoItemCellController *cell = [imgs objectAtIndex:[indexPath row]];
return cell;
}
这是奇怪的事情:所有这些都与在需要时动态加载图像相同 - 仍然存在相同的延迟......但是......当我滚动整个表格到它的末尾时 - 表格开始工作完美无缺(显然发生了某种缓存)。
- 为什么会这样?
- 可能是因为我使用的是单元格数组而不是从表中“出列”它们吗?
- 可能是因为单元格包含 UIImageView 吗?也许它在第一次显示时会做一些事情。
此外,我注意到只有在滚动表格时才会出现 RAM 使用量激增,并且当我在应用程序启动时将所有单元格及其图像加载到内存中时,几乎没有消耗。
任何想法表示赞赏