美文网首页iOS技术交流收藏
iOS 相册选中多张图片

iOS 相册选中多张图片

作者: 索性流年 | 来源:发表于2017-11-09 18:21 被阅读0次
遇到这个需求是,自己也是一脸懵,以前获取过单张图。无奈之下只能尝试用系统的UIImagePickerController实现,结果,可能是个人能力太渣,只能实现选中一张,在跳进去,在选中一张,如此循环下去。虽然也实现了功能,但是看这它一闪一闪的,着实闹心。最终,决定,能用第三方,就别白白浪费着脑细胞。

首先 cocaPods集成

pod search CTAssetsPickerController
pod install

如果大神想手动集成

传送门在此祝你好运

<CTAssetsPickerControllerDelegate> //代理协议

- (void)lyacquiring{
    [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){
    if (status !=PHAuthorizationStatusAuthorized)return;
    dispatch_async(dispatch_get_main_queue(), ^{
        CTAssetsPickerController *assetsPicker = [[CTAssetsPickerController alloc] init];
        assetsPicker.delegate =self;
        // 显示选择的索引
        assetsPicker.showsSelectionIndex =YES;
        // 设置相册的类型
        assetsPicker.assetCollectionSubtypes =@[@(PHAssetCollectionSubtypeSmartAlbumUserLibrary),@(PHAssetCollectionSubtypeAlbumRegular)];
         picker.showsEmptyAlbums =NO;
         [self presentViewController: assetsPicker animated:YES completion:nil];
        });
    }];
}


-(BOOL)assetsPickerController:(CTAssetsPickerController *)picker shouldSelectAsset:(PHAsset *)asset
{
    //设置想要选择多少张
    NSInteger max =4;
    if (picker.selectedAssets.count >= max) {
        return NO;
    }
    return YES;
}


- (void)assetsPickerController:(CTAssetsPickerController *)picker didFinishPickingAssets:(NSArray<PHAsset *> *)assets {
    [picker dismissViewControllerAnimated:YES completion:^{
    CGFloat lysize = [UIScreen mainScreen].scale;
    PHImageRequestOptions *requestOptions = [[PHImageRequestOptions alloc] init]; 
    requestOptions.resizeMode = PHImageRequestOptionsResizeModeExact;
   requestOptions.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;`
    for (NSInteger i = 0; i < assets.count; i++) {
        PHAsset *asset = assets[i];
        CGSize size = CGSizeMake(asset.pixelWidth / lysize, asset.pixelHeight / lysize);
      //            获取图片
        /*这个鳖孙可给我坑苦了,切记真机下使用,要不坑哭你,在模拟器上获取不到对应的图片路径,害得我好半天才搞明白,还有就是图片不存在相册也不行,好比说icloud中也获取不到*/
        [[PHImageManager defaultManager] requestImageForAsset:asset targetSize:size contentMode:PHImageContentModeDefault options:requestOptions resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
            [self.imageArr addObject:result];
        }];
     }
  }];
}

相关文章

网友评论

    本文标题:iOS 相册选中多张图片

    本文链接:https://www.haomeiwen.com/subject/ldsmmxtx.html