Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 创建要从应用程序目录中的文件加载到tableview的图像缩略图_Ios_Uitableview_Uiimageview_Thumbnails - Fatal编程技术网

Ios 创建要从应用程序目录中的文件加载到tableview的图像缩略图

Ios 创建要从应用程序目录中的文件加载到tableview的图像缩略图,ios,uitableview,uiimageview,thumbnails,Ios,Uitableview,Uiimageview,Thumbnails,对于一个我无法解决的问题,我需要一些帮助,但我认为我已经接近解决方案了。这是: 在我的应用程序的一个版本中,我能够使用从Assetlibrary获取的图像填充一个tableview(在CellForRowatineXpath中),使用以下两行: ALAsset someAsset = [theAssets objectAtIndex:indexPath.row]; [cell.imageView setImage:[UIImage imageWithCGImage:[someAsset thum

对于一个我无法解决的问题,我需要一些帮助,但我认为我已经接近解决方案了。这是:

在我的应用程序的一个版本中,我能够使用从
Assetlibrary
获取的图像填充一个tableview(在
CellForRowatineXpath
中),使用以下两行:

ALAsset someAsset = [theAssets objectAtIndex:indexPath.row];
[cell.imageView setImage:[UIImage imageWithCGImage:[someAsset thumbnail]]];
现在,我正在尝试从目录中读取图像文件,并将其存储在
NSMutableArray
中。当我
NSLog
使用
NSMutableArray
时,我可以看到文件名。但是我现在如何使文件转换为图像并显示在我的tableview中,就像我为什么使用
Assetlibrary
一样?我已经试过好几次了,但应用程序要么崩溃,要么在表视图中不显示图像缩略图。例如,此语句不显示图像,但应用程序不会崩溃:

UIImage *anImage = [UIImage imageWithContentsOfFile:[self.listTable objectAtIndex:0]];
当我在下一行设置image时,它不起作用。有人请帮忙

更新:当我记录self.listable的内容时,它是这样的:“19-10-25 276-10-12.jpg”, “19-10-37276-10-12.jpg”, “19-10-54 276-10-12.jpg”, “19-10-65 276-10-12.mov”等


当我记录我的文档目录时,它是:/var/mobile/Applications/8CB1368A-AAE2-4815-BD26-A7B7C8536193/documents。

如果这些文件位于您的
documents
文件夹中,则对于位于应用程序沙盒中的文件(例如
documents
中的文件、捆绑包等),应用程序只能使用
带有内容的图像,您可以通过以下方式获得完整路径:

NSString *documentsFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *imageFullPath   = [documentsFolder stringByAppendingPathComponent:imageFilename];
然后,您可以在
图像和文件内容中使用它


更新:

你问:

我的
directoryContents
是一个
NSArray
;如何将其转换为
NSString
,然后
[文档文件夹stringByAppendingPathComponent…]
,并将每个完整路径存储在
NSMutableArray

您可能会这样做:

NSFileManager *fileManager   = [NSFileManager defaultManager];
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSArray *filenames           = [fileManager contentsOfDirectoryAtPath:documentsDirectory error:nil];
NSMutableArray *paths        = [[NSMutableArray alloc] initWithCapacity:[filenames count]];

for (NSString *filename in filenames)
{
    [paths addObject:[documentsDirectory stringByAppendingPathComponent:filename]];
}

NSLog(@"%s filenames = %@", __FUNCTION__, filenames);
NSLog(@"%s paths = %@", __FUNCTION__, paths);

我用self.listTable的内容以及我的文档目录更新了这个问题。如何使文件名具有完整的路径?我希望能够使用listTable数组中的每个文件创建图像。如何编写或修改代码?谢谢。但是我从哪里获得您在第二行代码中使用的“imageFilename”?我以前也尝试过类似的方法,但是图像没有显示出来,因此我感到困惑。谢谢。是的,这是一个文件名,我还有一个步骤来解决这个问题。我在NSArray中获取文件名,如下所示:NSArray*directoryContents=[fileManager内容目录路径:Documents目录错误:nil。我也会得到如下文档目录:/var/mobile/Applications/8CB1368A-AAE2-4815-BD26-A7B7C8536193/Documents。我的最终目标是能够为每个文件名派生一个NSMutableString,如:/var/mobile/Applications/8CB1368A-AAE2-4815-BD26-A7B7C8536193/Documents/19-10-25276-10-12.jpg”,等等。我尝试了不同的方法,但仍然缺少一些东西,请帮助。我的directoryContents是一个NSArray;如何将其转换为NSString,然后再将[DocumentsFolderStringByAppendingPathComponent…]并将每个完整路径存储在NSMutableArray中?感谢您的帮助。@Paulo看到了我修改后的答案。非常感谢!现在我在tableview方法中进行了正确的调用,它正在工作!