如何在集合视图ios中显示资产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

您需要使用资产库获取URL的资产,然后从资产中获取图像。当前,您将资产URL视为资产,而不是使用URL获取资产:

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;