我有一个UICollectionView,其中嵌入了一个UIImageView。
该集合显示应用程序文档目录中保存的所有图像
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
当应用程序加载时,一些提供的图像会从主程序包复制到文档目录中,并且显示正常。
我具有允许从设备上保存的照片中选择图像的功能。我使用标准UIImagePickerController,然后使用以下代码将所选图像保存到应用程序文档文件夹
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *dateTime = [self getDateTimeKey];
NSString *newImageName = [NSString stringWithFormat:@"/%@%@%@",@"z",dateTime, @".JPG"];
BOOL saveStatus=YES;
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
NSData *imageData = UIImageJPEGRepresentation(chosenImage, 1);
NSError *saveError;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingString:newImageName];
saveStatus = [imageData writeToFile:savedImagePath options:NSDataWritingAtomic error:&saveError];
if (saveStatus == NO)
{
NSLog(@"Save Failed - |%@|\n", saveError);
}
else
{
NSLog(@"Save Worked\n");
}
selectedImageName = NULL;
[picker dismissViewControllerAnimated:YES completion:NULL];
}
保存工作和通过调试语句我可以看到文件已写入文档目录。我还可以看到正在调用collectionview的'cellForRowAtIndexPath'方法来为保存的文件创建UIImage。我还从测试设备下载了容器,并且能够查看图像,因此我知道图像是“有效的”
然而,集合视图中的UIImageView将无法显示它 - 只有一个空的UIImageView !!有什么想法吗?
非常感谢提前