繁体   English   中英

将目录中保存的图像显示到收藏夹视图

[英]Showing saved images in directory to a Collection View

通常,当项目文件中包含图像时,便使用代码

arraycollectionimages = [[NSArray alloc]]initwithobjects

但是,我想显示保存在目录中的图像。 我创建了多个目录,所以我只想调用其中一个的映像。 为了使这项工作,我想使用此代码,但是我不能这样做? 我只是将其插入如下,但效果不佳。

- (void)viewDidLoad {
    NSArray *arrayCollectionImages = [[NSArray alloc ]init];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *location=@"Genre1";
    NSString *fPath = [documentsDirectory stringByAppendingPathComponent:location];
    NSArray *directoryContent = [[NSFileManager defaultManager] directoryContentsAtPath: fPath];
    for(NSString *str in directoryContent){
        NSString *finalFilePath = [fPath stringByAppendingPathComponent:str];
        NSData *data = [NSData dataWithContentsOfFile:finalFilePath];
        if(data)
        {
            UIImage *image = [UIImage imageWithData:data];
            [arrayCollectionImages addObject:image];
        }
    }

我认为您的目录搜索可能需要很长时间。 尝试这个...

        - (void)viewDidLoad {
            dispatch_queue_t searchQ = dispatch_queue_create("com.awesome", 0);
            dispatch_async(searchQ, ^{
            NSArray *arrayCollectionImages = [[NSArray alloc ]init];
            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            NSString *documentsDirectory = [paths objectAtIndex:0];
            NSString *location=@"Genre1";
            NSString *fPath = [documentsDirectory stringByAppendingPathComponent:location];
            NSArray *directoryContent = [[NSFileManager defaultManager] directoryContentsAtPath: fPath];
            for(NSString *str in directoryContent){
                NSString *finalFilePath = [fPath stringByAppendingPathComponent:str];
                NSData *data = [NSData dataWithContentsOfFile:finalFilePath];
                if(data)
                {   dispatch_async(dispatch_get_main_queue(),^{
                    UIImage *image = [UIImage imageWithData:data];
                    });
                    [arrayCollectionImages addObject:image];
                }
            }
    });

}

该代码基本上会在搜索中产生另一个线程,并在图像准备就绪时放入图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM