UITableView滚动缓慢

3

我的应用程序出现了问题,我有一个UITableView,它的滚动速度很慢,不如其他应用程序快,即使我没有在表格中创建任何对象或添加子视图
这是我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {  
static NSString *searchingIdentifier = @"searchingIdentifierCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:searchingIdentifier];  
if (cell == nil) {  
        cell = [[[UITableViewCell alloc]   initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:searchingIdentifier]autorelease];  
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }  
cell.detailTextLabel.text =[[self.dataStoreByCategory objectAtIndex:indexPath.row]objectForKey:@"storeLevel"];

    cell.textLabel.text = [listStore objectAtIndex:indexPath.row];  
    cell.imageView.image = [[self.dataStoreByCategory   objectAtIndex:indexPath.row] objectForKey:@"storeIcon"];
}

somebody can help me.??


使用Instruments对您的应用程序进行性能分析,这将准确告诉您是什么导致了性能问题。 - Peter Hosey
4个回答

2
这通常发生在单元格中使用的内容非常大的情况下。
在您的情况下,您在单元格中使用的图像可能非常大。您可以通过注释代码并进行测试来检查它。
为了解决问题,请创建一个缩略图图像数组以显示在单元格上,而不是原始图像。您可以通过减小图像的高度和宽度来找到一些制作缩略图的方法。
如果您在tableview中使用缩略图图像,则您的表格将滚动得更快。当用户选择任何表行时,您可以根据应用程序的要求在下一个视图中显示完整的图像。

我一直在尝试注释图像代码,但没有任何反应。当我尝试将文本更改为@"some text"时,它滚动得更快了.. 但是无法更改文本:( - Imam Arief W
将详细的文本字符串直接放入一个数组中,而不是字典。这样可以帮助提高效率。 - Anil Sivadas
我已经对detailText进行了注释,但是滚动仍然很慢... 嗯,我认为现在不慢了,但也不够流畅... :( - Imam Arief W

1

你的图片尺寸是多少? 同样的,你使用的文本长度是多少?

如果你的图片太大,可能会减慢滚动速度。对于文本也是一样(但需要很多文本^^)。


我的图像大小为 25x25,但文本长度各不相同,可能有 10-20 个字符。我认为问题出在图像尺寸上,所以我将其调整为 25x25,但滚动速度仍然很慢... :( 我的图像扩展名是 .jpg。 - Imam Arief W
根据@Anil Sivadas的建议,尝试注释一些行以检查是什么导致了滚动视图的减速。顺便问一下,你在哪里运行应用程序?模拟器?设备(如果是,则是哪个设备)。 - Vinzius
我正在设备上运行。在模拟器上它滚动得很快,但是当安装在设备上时,它变得更慢了,不是很慢,但是滚动不完美...有时会突然停顿,尽管它仍在滚动。 - Imam Arief W

1

你在 UITableViewCell 中放置的图片很大吗?

我认为你可以尝试注释掉加载图片的那一行代码,看看是否会更快。我没有在你的代码中发现任何问题。


不,它只是25x25,我已经尝试了,但没什么效果,问题跟@anil sivadas的一样。 - Imam Arief W
是的,我认为 Anil 是正确的,你的问题在于字典和数组的查找方式。 - vodkhang

0
尝试重启您的设备。有时设备在开机多天后会变得很慢!相信我!

我提出这个建议是考虑到其他人提供的解决方案对您没有帮助。尽管如此,我认为这种情况不应该发生。如果确实如此,那么整个应用程序都会变得很慢。 - Raj Pawan Gumdal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接