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]; }]; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。