1
我从服务器加载XML数据(包括图像,文本等),并通过tableview显示该数据。如何在ios中预加载图像
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if([elementName isEqualToString:@"user_id"])
{
Myxml.str_user_id = currentNodeContent;
}
else if([elementName isEqualToString:@"username"])
{
Myxml.str_username = currentNodeContent;
}
else if([elementName isEqualToString:@"avatar"])
{
Myxml.str_avatar=currentNodeContent;
Myxml.imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:currentNodeContent]];
}
else if([elementName isEqualToString:@"full_name"])
{
Myxml.str_full_name=currentNodeContent;
}
else if([elementName isEqualToString:@"cups"])
{
Myxml.str_cups=currentNodeContent;
}
//--------Record End-------
else if([elementName isEqualToString:@"record"])
{
[RecordArray addObject:Myxml];
[Myxml release];
Myxml = nil;
}
[currentNodeContent release];
currentNodeContent = nil;
currentNodeContent = [[NSMutableString alloc]init];
}
现在,在主视图控制器我收集在名为 “LabelArray” 的NSMutableArray所有数据在init方法
Connection=[[NetworkConnection alloc]initConnection];
if (Connection.isReachable)
{
XmlDetail=[[TopPickerXML alloc]init];
LabelArray=[[NSMutableArray alloc]initWithArray:XmlDetail.RecordArray];
}
else
{
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Alert" message:@"Network connection unavailable..." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
}
并且在的cellForRowAtIndexPath表视图,我显示这样的图像
img_BuddyAvtar=[[UIImageView alloc]init];
img_BuddyAvtar.frame=CGRectMake(10, 5, 120, 105);
img_BuddyAvtar.image=[UIImage imageWithData:TopPicker_record.imageData];
img_BuddyAvtar.backgroundColor=[UIColor clearColor];
[View_TableCell addSubview:img_BuddyAvtar];
现在,我的问题是当我加载此视图需要时间加载,然后显示包括我的文本和图像的所有数据。如何预加载图像,以便加载我的表视图需要更少的时间?
添加以下代码将用于图像的循环此代码的工作? –
是的,它会。你只需要传递URL和占位符图像。而已 :) – ivarun