如何在集合视图ios中显示资产url
您需要使用资产库获取URL的资产,然后从资产中获取图像。当前,您将资产URL视为资产,而不是使用URL获取资产:如何在集合视图ios中显示资产url,ios,uicollectionview,alassetslibrary,Ios,Uicollectionview,Alassetslibrary,您需要使用资产库获取URL的资产,然后从资产中获取图像。当前,您将资产URL视为资产,而不是使用URL获取资产: ALAssetsGroupEnumerationResultsBlock assetsEnumerationBlock = ^(ALAsset *result, NSUInteger index, BOOL *stop) { if (result) { [assets addObject:r
ALAssetsGroupEnumerationResultsBlock assetsEnumerationBlock = ^(ALAsset *result, NSUInteger index, BOOL *stop)
{
if (result) {
[assets addObject:result];
ALAssetRepresentation *rep = [result defaultRepresentation];
photoname=[rep filename];
imageurl=[rep url];
NSLog(@"result %@",result);
NSLog(@"name %@",photoname);//Img0001.Jpg
NSLog(@"name %@",imageurl);//assets-library://asset/asset.JPG?id=3B36DBC8-A2F7-4088-ADEF-A9E2FF8FD927&ext=JPG
[print addObject:photoname];
//NsuserDefaults
// NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithArray:print];
// [[NSUserDefaults standardUserDefaults] setObject:mutableArray forKey:@"test"];
retArray = [[NSMutableArray alloc] initWithArray:((NSMutableArray *) [[NSUserDefaults standardUserDefaults] objectForKey:@"test"])];
NSLog(@"res %@",retArray);
}
};
ALAssetsFilter *onlyPhotosFilter = [ALAssetsFilter allPhotos];
[self.assetsGroup setAssetsFilter:onlyPhotosFilter];
[self.assetsGroup enumerateAssetsUsingBlock:assetsEnumerationBlock];
}
你好请描述你的问题。。解释你尝试过什么和什么不起作用..我得到了类似于断言Url的资产-library://asset/asset.JPG?id=3B36DBC8-A2F7-4088-ADEF-A9E2FF8FD927&ext=JPG…如何在集合视图CellForItemAtIndexPath中显示该图像; CGImageRef thumbnailImageRef=[资产缩略图];UIImage*缩略图=[UIImage imageWithCGImage:thumbnailImageRef];它崩溃了。。。。。。。。。。。由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[NSURL缩略图]:未识别的选择器发送到实例0xa3ccf10',我需要在其中添加上述代码..请让我知道..我是iosIn
cellForItemAtIndexPath
的新手,您当前在那里遇到崩溃。[AlassetLibrary assetForURL:notequal resultBlock:^(ALAsset*asset){UIImage*image=[UIImage imageWithCGImage:[asset thumbnailImageRef];//将图像用于某些内容CGImageRef thumbnailImageRef=[asset thumbnailImageRef];UIImage*ThumbnailImageWithCGImage:[UIImage:thumbnailImageRef];//将图像应用于单元格UIImageView*imageView=(UIImageView*)[cell viewWithTag:kImageViewTag];imageView.image=缩略图;返回单元格;}}好吧,您现在两次获取图像,并尝试调用AlassetLibrary
上不存在的类方法。您需要获取AlassetLibrary
的实例(因此在我的回答中是self.assetsLibrary
).您熟悉OO、类方法、实例方法、实例变量吗?没有发现。您返回块外的单元格。在块内,只需将图像设置到图像视图中。
[self.assetsLibrary assetForURL:assetURL resultBlock:^(ALAsset * asset) {
UIImage *image = [UIImage imageWithCGImage:[asset thumbnail]];
// use the image for something
}
NSURL *assetURL = notequal[indexPath.row];
[self.assetslibrary assetForURL:assetURL resultBlock:^(ALAsset * asset) {
UIImage *image = [UIImageimageWithCGImage[asset thumbnail]];
UIImageView *imageView = (UIImageView *)[cell viewWithTag:kImageViewTag];
imageView.image = thumbnail;
}];
return cell;