0

さて、これは今の私の通常のドメインです。いくつかの機能を管理しましたが、改善する必要があります。

カメラロールから最近の画像を取り込もうとしています。もっとエレガントな方法があると確信しています。私を不安にさせているもう一つのことは、これです

Block > loop > another blockより良い解決策や簡素化を歓迎します。

  ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];
[assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos
                             usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
                                 if (nil != group) {

                                     [group setAssetsFilter:[ALAssetsFilter allPhotos]];
                                     NSLog(@"%d images found", group.numberOfAssets);
                                     for(int i = group.numberOfAssets - 5; i<group.numberOfAssets - 1; i++){

                                     [group enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndex:i]
                                                             options:0
                                                          usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
                                                              if (nil != result) {
                                                                  ALAssetRepresentation *repr = [result defaultRepresentation];

                                                                  UIImage *img = [UIImage imageWithCGImage:[repr fullResolutionImage]];

                                                                  CGFloat aspectRatio = img.size.width/img.size.height;
                                                                  UIImageView *imgView = [[UIImageView alloc] init];

                                                                  imgView.frame = CGRectMake(10, self.yCord, 300, 300 /aspectRatio);

                                                                  self.yCord += margin + (300/aspectRatio);

                                                                  imgView.image = img;

                                                                  imgView.layer.shadowRadius = 5.0;
                                                                  imgView.layer.shadowColor = [UIColor blackColor].CGColor;

                                                                  [self.scroll addSubview:imgView];

                                                                  *stop = YES;
                                                                  self.scrollViewHeight = self.yCord + imgView.frame.size.height + margin;
                                                                  CGSize scrollViewSize = CGSizeMake(320, self.scrollViewHeight);
                                                                  [self.scroll setContentSize:scrollViewSize];

                                                              }
                                                          }];}
                                 }

                                 *stop = NO;
                             } failureBlock:^(NSError *error) {
                                 NSLog(@"error: %@", error);
                             }];

また、画像を遅延ロードさせるにはどうすればよいですか。今のところページングを無効にしており、すべての画像が同時に読み込まれますが、これはほとんどの場合危険です.

4

1 に答える 1