具有大图像的UITableView单元格中的滚动延迟

时间:2012-08-17 12:42:55

标签: iphone uitableview uiimageview

我创建了一个原型UITableViewCell,并用包含图像路径和单元格标签文本字符串的字典填充它。我使用与UITableViewCell的{​​{1}}相同的图片尺寸,就像我的应用中的较大图片视图一样,并且有些图片相当大..就像是300w x 800h和300 kb尺寸。因此每个单元的总加载量约为500 kb。因此,当我运行应用程序时,在第一个向下滚动UITableView时(创建单元格时),我在滚动时会遇到延迟。

如果我这样离开,它会通过App Store审核还是可能会被拒绝?听说过任何案件?

我知道我可以为UITableViewCell制作一些较小的图像。那么,UIImageView(较老的iphone和视网膜)的首选像素尺寸是多少? (或者UIImageView可能有最大kb加载限制吗?)

如果你要说44分和88分,研究告诉我这是 UITableViewCell 本身的默认高度,什么也没得到与UITableViewCell维度有关,或者如果有的话,则为kb限制..

最后:还有其他(苹果批准的方式)避免滞后吗?就像在滚动开始之前创建单元格一样,还是什么?

1 个答案:

答案 0 :(得分:1)

尝试使用LazyLoading。如果图像来自服务器。这是滞后(延迟)的主要问题,因为hte单元被重用所以每当你滚动它每次加载图像。

此外,由于您已经说过图像非常大所以请尝试将图像转换为更小的尺寸。 图像的大小未预定义为44或88或任何其他内容。我们可以根据单元格的高度设置大小。

修改 正如Kristoffer所说,图像来自他的主要捆绑而不是来自服务器 您可以尝试更改cellForRowAtIndexPath

static NSString *CellIdentifier = @"Cell";

NSString *CellIdentifier = [NSString stringWithFormat:@"Cell%d%d",indexPath.row,indexPath.section];

不确定它是否会起作用。但它将停止重复使用单元格。因此,您的单元格不会重新加载单元格中已加载的图像。