ImageView加载本地图像,但不加载URL

时间:2013-09-03 01:14:56

标签: ios objective-c cocoa-touch uicollectionview

我无法从网址加载图片。我有CollectionViewCell子类,其图像视图设置如下:

@property (strong, nonatomic) IBOutlet UIImageView *albumCover;

我无法通过网址加载图片。这是我使用的代码:

NSData * imageData = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString: song.albumURL]];
cell.albumCover = [[UIImageView alloc] initWithImage:[UIImage imageWithData: imageData]];

同时,这有效:

cell.albumCover.image = [UIImage imageNamed:@"lock.png"];

我知道URL连接正在获取正确的图像,因为我正在用Fiddler监视它。为什么图像不显示呢?

3 个答案:

答案 0 :(得分:3)

我再次分配UIImageView对象,而不是仅仅用图像初始化它。正确的代码是:

NSData * imageData = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString: song.albumURL]];
[cell.albumCover initWithImage:[UIImage imageWithData: imageData]];

答案 1 :(得分:1)

我使用SDWebImageView

  

具有UIImageView类别的缓存支持的异步图像下载程序   http://hackemist.com/SDWebImage/doc

答案 2 :(得分:0)

您应该使用fileURLWithPath:代替URLWithString:

URLWithString:适用于WWW网址。

一个例子:

NSString *rootPath = [[NSBundle mainBundle] resourcePath];
NSString *filePath = [rootPath stringByAppendingPathComponent:@"example.mov"];
NSURL *fileURL = [NSURL fileURLWithPath:filePath isDirectory:NO];
yourMoviePlayer = [[MPMoviePlayerController alloc] initWithContentURL: fileURL];