Image 将图像异步加载到tableview单元格中
在互联网上搜索了几个星期后&这里也有很多帖子,我似乎找不到在我的项目中实现这一点的方法。Image 将图像异步加载到tableview单元格中,image,asynchronous,uitableview,nsinvocation,Image,Asynchronous,Uitableview,Nsinvocation,在互联网上搜索了几个星期后&这里也有很多帖子,我似乎找不到在我的项目中实现这一点的方法。 我的dropbox帐户中有一个plist。plist中一个名为“cellPic”的字典下的字符串。 我想在表格单元格中显示我的dropbox中的商店图片。 plist下载到我的文档路径: -(void)readPlistFromServerAndSaveToDocs { //save plist from server to docs: NSArray *tempArr1 = [[N
我的dropbox帐户中有一个plist。plist中一个名为“cellPic”的字典下的字符串。
我想在表格单元格中显示我的dropbox中的商店图片。
plist下载到我的文档路径:
-(void)readPlistFromServerAndSaveToDocs
{
//save plist from server to docs:
NSArray *tempArr1 = [[NSArray alloc]initWithContentsOfURL:
[NSURL URLWithString:@"http://dl.dropbox.com/u/4082823/AppsFiles/Black/stores.plist"]];
NSString *error;
NSString *rootPath =
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@"stores.plist"];
NSArray *tmpArr = [NSArray arrayWithArray:tempArr1];
NSData *tmpData = [NSPropertyListSerialization dataFromPropertyList:tmpArr
format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];
NSLog(@"plistPath=%@",plistPath);
if(tmpData)
{
[tmpData writeToFile:plistPath atomically:YES];
}
else
{
NSLog(@"%@",error);
}
//Announcement if there is no server connection:
if(tempArr1.count == 0)
{
[self plistMessages];
}
}
到目前为止一切正常
在这个方法下的TableViewController中,我想实现单元格的异步图像加载
- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
我的目标是异步读取/下载图像,但我不知道如何进行-我需要读取包含pic完整url地址的文档路径上plist中的字符串,还是需要将pic从服务器下载到文档,然后读取到单元格?在我的例子中,单元格的位置正在改变cau的位置,它们是按用户位置排序的(离用户最近的存储在表的顶部),这就是为什么我认为我需要从plist读取它。
这是我的一个图片url:
最好的方法是什么&如何一次下载所有png图像(如果需要)?
我试着用本教程来做,但根本没有成功。
我们将感谢您的帮助
谢谢 看看Apple的示例代码。谢谢lawicko,我之前看过了,但看起来有很多代码和子类需要实现。从我在网上看到的代码中,我确信有一条很短的路可以做到这一点,但我很困惑&不知道如何做到这一点:真的吗?这里只有两个类您应该感兴趣,
IconDownloader
和RootViewController
。如果你能找到比这更简单的例子,我就买啤酒。:)哦,我觉得我需要所有的!很抱歉我将试着用这个例子使它起作用。。对不起,我是新的xcode。。。如果有用的话,我给你买杯啤酒;)+1为一个伟大的链接。将答案格式化一点-希望您不介意。@AlexisW因为这与这个问题无关,所以您应该创建一个新问题,并准确描述您遇到的问题,尤其是粘贴您看到的所有错误和尽可能多的代码。