Uitableview UtableView很慢

Uitableview UtableView很慢,uitableview,Uitableview,我有一个视图,我在其中拖动了一个UITableView,2个UIImageView第一个视图显示背景图像,第二个视图只是在视图顶部显示一个非常小的标题和一个图像。 它们都设置为弱属性。tableView有495行,每个单元格中加载一个图像。 以下是配置单元格的代码: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static

我有一个视图,我在其中拖动了一个UITableView,2个UIImageView第一个视图显示背景图像,第二个视图只是在视图顶部显示一个非常小的标题和一个图像。 它们都设置为弱属性。tableView有495行,每个单元格中加载一个图像。 以下是配置单元格的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }    

    int cellNumber = indexPath.row + 1;
    NSString *cellImage1 = [NSString stringWithFormat:@"c%i.png", cellNumber];
    UIImage *theImage = [UIImage imageNamed:cellImage1];

    [cell.imageView setImage:theImage];


    UIView *bgColorView = [[UIView alloc] init];
    [bgColorView setBackgroundColor:[UIColor brownColor]];
    [cell setSelectedBackgroundView:bgColorView];

    return cell;
}
我使用segues,因此不需要委托方法。这也与这个问题无关。 问题是,滚动是平滑的;但是如果我滚动太快,那么它就会变慢,可能会导致应用程序崩溃。加载到单元格中的png图像大小不大,每个大小约为5KB。出列工作似乎没有有效地完成;因为它变慢了,显示内存警告信息,然后崩溃发生了。 我能做些什么吗?视野中没有别的东西

更新:我还尝试删除这部分代码:

UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor brownColor]];
[cell setSelectedBackgroundView:bgColorView];

没用

UIImage ImageName会缓存图像,并且永远不会释放内存,这可能是内存警告和崩溃的原因。在处理大量图像时,通常最好以其他方式加载图像,例如imageWithContentsOfFile或imageWithData。

UIImageImageNamed会缓存图像,并且永远不会释放内存,这可能是内存警告和崩溃的原因。在处理大量图像时,通常最好以其他方式加载图像,例如imageWithContentsOfFile或imageWithData。

尝试在setImage命令后释放图像。这有帮助吗?

尝试在setImage命令后释放图像。这有帮助吗?

//快速滚动不会使iPod应用程序变慢!而且里面也有文字和图像。这只发生在设备上。当然,在模拟器中,没有任何问题,而且非常顺利。您是否考虑过将bgColorView创建逻辑移动到if cell=nil块中?否则,您将在每次显示单元格时创建该视图……我甚至删除了该部分。还是一样。//快速滚动不会使iPod应用程序变慢!而且里面也有文字和图像。这只发生在设备上。当然,在模拟器中,没有任何问题,而且非常顺利。您是否考虑过将bgColorView创建逻辑移动到if cell=nil块中?否则,您将在每次显示单元格时创建该视图……我甚至删除了该部分。它还是一样。我用的是ARC,所以它可能不允许我这样做。我用的是ARC,所以它可能不允许我这样做。这是绝对正确的。内存使用现在正常,不会增加!但是tableView在快速滚动时仍然有点慢。UIImage ImageName不再缓存,也永远不会释放内存。这是绝对正确的。内存使用现在正常,不会增加!但是tableView在快速滚动时仍然有点慢。UIImage ImageName不再缓存,也永远不会释放内存。