创建要从app目录中的文件加载到tableview中的图像缩略图

时间:2012-10-03 15:04:53

标签: ios uitableview uiimageview thumbnails

我需要一些我无法解决的问题的帮助,但我认为我接近解决方案。这是它:

在我的应用版本中,我能够使用以下两行填充从CellforRowAtIndexPath获取的图像的{(1}})表格视图:

Assetlibrary

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

Assetlibrary

当我在下一行中设置图像时,它不起作用。有人请帮忙!

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

当我NSLog我的文件目录时,它是:/ var / mobile / Applications / 8CB1368A-AAE2-4815-BD26-A7B7C8536193 / Documents。

1 个答案:

答案 0 :(得分:1)

应用只能imageWithContentsOfFile位于应用沙盒中的文件(例如Documents,捆绑包等)。如果这些文件位于Documents文件夹中,则会获得完整路径:

NSString *documentsFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *imageFullPath   = [documentsFolder stringByAppendingPathComponent:imageFilename];

然后,您可以在imageWithContentsOfFile中使用它。


<强>更新

你问:

  

我的directoryContentsNSArray;如何将其转换为NSString然后[documentsFolder 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);