iOS从系统相册选取多张照片示例代码
之前写过UIImagePickerController调取系统相册图片(选取单张照片,多用于用户头像)
1.pod导入
pod'CTAssetsPickerController'
2.添加头文件
#import<CTAssetsPickerController/CTAssetsPickerController.h>
3.添加delegate
<CTAssetsPickerControllerDelegate>
4.实现
-(void)upLoading{
[PHPhotoLibraryrequestAuthorization:^(PHAuthorizationStatusstatus){
if(status!=PHAuthorizationStatusAuthorized)return;
dispatch_async(dispatch_get_main_queue(),^{
CTAssetsPickerController*picker=[[CTAssetsPickerControlleralloc]init];
picker.delegate=self;
//显示选择的索引
picker.showsSelectionIndex=YES;
//设置相册的类型:相机胶卷+自定义相册
picker.assetCollectionSubtypes=@[
@(PHAssetCollectionSubtypeSmartAlbumUserLibrary),
@(PHAssetCollectionSubtypeAlbumRegular)];
//不需要显示空的相册
picker.showsEmptyAlbums=NO;
[selfpresentViewController:pickeranimated:YEScompletion:nil];
});
}];
}
-(BOOL)assetsPickerController:(CTAssetsPickerController*)pickershouldSelectAsset:(PHAsset*)asset
{
NSIntegermax=9;
if(picker.selectedAssets.count>=max){
UIAlertController*alert=[UIAlertControlleralertControllerWithTitle:@"提示"message:[NSStringstringWithFormat:@"最多选择%zd张图片",max]preferredStyle:UIAlertControllerStyleAlert];
[alertaddAction:[UIAlertActionactionWithTitle:@"好的"style:UIAlertActionStyleDefaulthandler:nil]];
[pickerpresentViewController:alertanimated:YEScompletion:nil];
//这里不能使用self来modal别的控制器,因为此时self.view不在window上
returnNO;
}
returnYES;
}
-(void)assetsPickerController:(CTAssetsPickerController*)pickerdidFinishPickingAssets:(NSArray*)assets
{
NSArray*array=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*documents=[arraylastObject];
NSString*documentPath=[documentsstringByAppendingPathComponent:@"arrayXML.xml"];
NSArray*dataArray=[NSArrayarrayWithArray:assets];
[dataArraywriteToFile:documentPathatomically:YES];
NSArray*resultArray=[NSArrayarrayWithContentsOfFile:documentPath];
NSLog(@"%@",documentPath);
//关闭图片选择界面
[pickerdismissViewControllerAnimated:YEScompletion:nil];
//遍历选择的所有图片
self.plCollection.photoArray=assets;
for(NSIntegeri=0;i<assets.count;i++){
//基本配置
CGFloatscale=[UIScreenmainScreen].scale;
PHImageRequestOptions*options=[[PHImageRequestOptionsalloc]init];
options.resizeMode=PHImageRequestOptionsResizeModeExact;
options.deliveryMode=PHImageRequestOptionsDeliveryModeHighQualityFormat;
PHAsset*asset=assets[i];
CGSizesize=CGSizeMake(asset.pixelWidth/scale,asset.pixelHeight/scale);
////获取图片
[[PHImageManagerdefaultManager]requestImageForAsset:assettargetSize:sizecontentMode:PHImageContentModeDefaultoptions:optionsresultHandler:^(UIImage*_Nullableresult,NSDictionary*_Nullableinfo){
NSData*imageData=UIImageJPEGRepresentation([selfimageWithImageSimple:resultscaledToSize:CGSizeMake(200,200)],0.5);
[selfossUpload:imageData];
}];
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。