12

当使用 iOS 的内置 UIImagePicker 时,开发人员可以访问选择器中使用的缩略图。是否可以访问 Filepicker 使用的缩略图或以其他方式访问 Filepicker 使用的 ALAsset 库 URL?

4

1 回答 1

1

我就是这样做的,但我必须警告你它很慢(ish),并且需要的框架是内存密集型的,因为它遍历 ALAssetsLibrary 寻找海报图像。这在后台线程上,因此 UI 更改被发送到主线程进行渲染。

    self.assetsLibrary = [[ALAssetsLibrary alloc] init];

    NSUInteger groupTypes = ALAssetsGroupAlbum | ALAssetsGroupSavedPhotos | ALAssetsGroupPhotoStream;
    [self.assetsLibrary enumerateGroupsWithTypes:groupTypes
                                  usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
                                      if (group.posterImage != nil) {
                                          dispatch_async(dispatch_get_main_queue(), ^{
                                              self.pictureLayer.contents = (__bridge_transfer id) CGImageCreateCopy(group.posterImage);
                                              [self.layer setNeedsDisplay];
                                              self.assetsLibrary = nil;
                                              *stop = YES;
                                          });
                                      }
                                  }
                                failureBlock:^(NSError *error) {
                                    self.assetsLibrary = nil;
                                    NSLog(@"AssetLib error:%@",error);
                                }];
于 2013-02-22T01:55:11.597 回答