我使用以下代码从网上下载图片并将其添加到数组中。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
UIImage* myImage = [UIImage imageWithData:
[NSData dataWithContentsOfURL:
[NSURL URLWithString: @"http://tcpm.mrlazyinc.com/files/users/themafia/te/beauty/02.jpg"]]];
recipePhotos = [[NSMutableArray alloc] initWithObjects:myImage, @"2.png", @"3.png", @"4.png", @"5.png", @"6.png", @"6.png", @"8.png", @"9.png", @"10.png", nil];
});
我使用以下代码将图像设置为ui
UIImageView *recipeImageView = (UIImageView *)[cell viewWithTag:100];
recipeImageView.image = [UIImage imageNamed:[recipePhotos objectAtIndex:indexPath.row]];
在运行期间,不会显示从Web下载的图像。我有什么遗失的吗?
答案 0 :(得分:3)
你正在做的是使用[UIImage imageNamed:] 但这将访问数组recipePhotos的对象,并将返回每个对象中的字符串。所以你没有这些名称的图像。 由于存储在数组中的对象是图像,因此应该尝试使用
所以尝试做
recipeImageView.image = [recipePhotos objectAtIndex:indexPath.row]
或
recipeImageView.image = [UIImage imageWithData:[recipePhotos objectAtIndex:indexPath.row]
答案 1 :(得分:1)
在数组recipePhotos中,只有第一个索引包含正确的UIImage
,因为它包含"http://tcpm.mrlazyinc.com/files/users/themafia/te/beauty/02.jpg"
(myImage
)的完整路径,而只包含没有http://tcpm.mrlazyinc.com/files/users/themafia/te/beauty/
的文件路径的字符串{ {1}}
recipePhotos = [[NSMutableArray alloc] initWithObjects:myImage, @"2.png", @"3.png", @"4.png", @"5.png", @"6.png", @"6.png", @"8.png", @"9.png", @"10.png", nil];
});
尝试NSLog
数组recipePhotos
答案 2 :(得分:1)
使用SDWebImage类从web
动态地将图像设置为imageview将以下文件导入头文件。
#import "UIImageView+WebCache.h"
导入文件后尝试以下代码。
[self.imgLogo sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@",[self.dictTemp valueForKey:@"camp_image"]]] placeholderImage:[UIImage imageNamed:@"placeholder.jpg"]];
从以下链接下载库: -