我是 iPhone 编程的新手。我想将图像加载到 UITableView。我的图片来自网络。我知道我必须使用ASIHttp Request
然后将图像加载到 UITableview。但如果我这样做,那么直到它的加载图像 UITableview 挂起。如果我使用异步图像加载块,那么每次Cell==nil
或重用请求女仆,我不想这样做。
以下我在 Tableview 中使用的代码行cellForRowAtIndexpath
。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UIImageView *imgViewCellBg;
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.accessoryType=UITableViewCellAccessoryNone;
imgViewCellBg = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,151)];
imgViewCellBg.userInteractionEnabled = NO;
imgViewCellBg.backgroundColor = [UIColor whiteColor];
imgViewCellBg.tag = 10000;
[cell.contentView addSubview:imgViewCellBg];
[imgViewCellBg release];
}
else{
imgViewCellBg = (UIImageView *)[cell.contentView viewWithTag:10000];
}
//-------------------------------- For the image Downloding And Displaying ------
__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:(MY Url)]];
[request setCompletionBlock:^{
// NSLog(@"Image downloaded.");
NSData *data = [request responseData];
UIImage *imageCountry = [[UIImage alloc] initWithData:data];
[imgViewCellBg setImage:imageCountry];
imageCountry = Nil;
}];
[request setFailedBlock:^{
NSError *error = [request error];
NSLog(@"Error downloading image: %@", error.localizedDescription);
}];
[request startAsynchronous];
//-----------------------------------------------------------------
return cell;