您好我有这个代码从服务器下载图像,然后在表视图中显示一些文本(如果没有图像我想要显示文本):
//下载部分
NSMutableString *photourl=[[NSMutableString alloc] initWithString:url_image];
[photourl appendString:[dic objectForKey:@"photo"]];
@try{
//add to mutable array
[photoSmallImageData addObject:[NSData dataWithContentsOfURL:[NSURL URLWithString:photourl]]];
}
@catch (id Exception) {
[photoSmallImageData addObject:[NSData dataWithContentsOfURL:[NSURL URLWithString:url_image]]];
}
//表视图代码的一部分
NSData *imageData = [photoSmallImageData objectAtIndex:indexPath.row];
@try {
cell.imageView.image = [UIImage imageWithData:imageData];
}
@catch (NSException *exception) {
cell.imageView.image = [UIImage imageNamed:@"icon72.png"];
}
2.图像都是不同的尺寸,我希望它们具有标准的外观并且居中有没有办法做到这一点以及代码的哪一点?非常感谢你
编辑我找到了方法: dataWithContentsOfURL:选项:错误: http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/Reference/Reference.html 但我不知道如何使用它
答案 0 :(得分:2)
为什么不在下载图像数据时创建图像并将它们保存在阵列中?此外,您正好在 dataWithContentsOfURL:options:error:方法之后。鉴于您将图像名称保留在 dic 字典中,代码将如下所示:
NSMutableString *photourl=[[NSMutableString alloc] initWithString:url_image];
[photourl appendString:[dic objectForKey:@"photo"]];
//try to create the image
NSError* err = nil;
UIImage* img = nil;
NSData* tempData = [NSData dataWithContentsOfURL:[NSURL URLWithString:photourl] options:NSDataReadingMappedIfSafe error:&err];
if (!err) {
// image data loaded, create image
img = [UIImage imageWithData:tempData];
} else {
// image data could not be loaded, display error
NSLog(@"%@", err);
// put the default image in the array
img = [UIImage imageNamed:@"icon72.png"];
}
[photoSmallImage addObject:img];
然后在表格视图中委托:
cell.imageView.image = [photoSmallImage objectAtIndex:indexPath.row];
关于问题的第二部分,您可能需要查看contentMode property of UIView class。默认值是要填充的比例。通过在cell.imageView上操作此属性,您可以实现所需的效果。