Swift - how to get last taken 3 photos from photo library?

前端 未结 5 1446
独厮守ぢ
独厮守ぢ 2020-12-04 08:42

I need to get and show last taken 3 photos from photo library on viewDidload event without any clicks.

After this step, I should get other photos 3 by 3

5条回答
  •  遥遥无期
    2020-12-04 09:27

    Here is @Lindsey Scott's answer but in Objective-C. I am putting the last 9 photos from Camera Roll into a collection view:

    -(void)fetchPhotoFromEndAtIndex:(int)index{
    
    PHImageRequestOptions *options = [[PHImageRequestOptions alloc]init];
    options.synchronous = YES;
    PHFetchOptions *fetchOptions = [[PHFetchOptions alloc]init];
    fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];
    
    PHFetchResult *photos = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions];
    if (photos) {
        [[PHImageManager defaultManager] requestImageForAsset:[photos objectAtIndex:photos.count -1 -index] targetSize:CGSizeMake(self.collectionView.frame.size.width/3, self.collectionView.frame.size.height/3) contentMode:PHImageContentModeAspectFill options:options resultHandler:^(UIImage *result, NSDictionary *info) {
            [self.imagesArray addObject:result];
    
            if (index + 1 < photos.count && self.imagesArray.count < 9) {
                [self fetchPhotoFromEndAtIndex:index + 1];
            }
        }];
    }
    
    [self.collectionView reloadData];
    
    }
    

提交回复
热议问题