Objective c 当我有来自服务器的图像时,滚动速度较慢

Objective c 当我有来自服务器的图像时,滚动速度较慢,objective-c,uitableview,ios6,uiimageview,Objective C,Uitableview,Ios6,Uiimageview,我有的是tableView。在每个单元格中,我在旁边显示图像、名称和一些细节。图像位于服务器上。下面是我正在做的图片 UIImageView *imagePathImage = (UIImageView *)[cell viewWithTag:9999999984]; test1 = [NSString stringWithFormat:@"%@", [[news objectAtIndex:indexPath.row] objectForKey:@"imagePath"]]; if ([tes

我有的是tableView。在每个单元格中,我在旁边显示图像、名称和一些细节。图像位于服务器上。下面是我正在做的图片

UIImageView *imagePathImage = (UIImageView *)[cell viewWithTag:9999999984];
test1 = [NSString stringWithFormat:@"%@", [[news objectAtIndex:indexPath.row] objectForKey:@"imagePath"]];
if ([test1 isEqualToString:@"missing"]) {
    imagePathImage.image = [UIImage imageNamed:@"no_image.png"];
} else {
    imagePathImage.image = [[UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString:[NSString stringWithFormat:@"http://www.mysite.com/sama/myImages/image%@.jpg", [[news objectAtIndex:indexPath.row] objectForKey:@"id"] ]]]] retain];
}
我正在提取JSON格式的数据

问题是,当我向下滚动时,加载下一个项目需要时间,就像我提供的服务器路径一样。如果我隐藏图像代码,滚动会快得多。然而,当我有图像加载图像是需要时间的

我的问题是,iPhone应用程序中的这种行为是可以的,还是我应该先(本地)下载图像,然后再显示它们

在存储图像时,我是否应该将图像的分辨率更改为60x60,因为我的图像图标大小为60x60


编辑1 我用迈克尔·罗宾逊的回答。为了调整大小,我使用了下面链接中的代码


调整图像大小,使其不大于应用程序中使用的最大尺寸,这将节省内存并减少下载时间

如果这并没有帮助或不能充分提高性能,请在图像滚动到视图中时研究延迟加载图像


编辑:正如其他人所说,您还应该在另一个线程上异步加载它们。

尝试延迟加载图像。您可以得到一个示例。

我将异步加载它们

请看一下本教程。它很容易理解,而且几乎完全符合您的需要。

首先使用NSThread异步加载图像,或者使用分离加载到线程中

NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(requestImageFromServer) object:nil];
[thread start];
,缓存已加载的图像。我已经有这个了。使用您自己的逻辑—将图像保存到文件系统并获取它们,之前将其与nil(使用NSFileManager)进行比较