圖片選擇1.gif
圖片選擇2.gif
簡述
借助PYPhotoBrowser 和YangMingShan共同組合成圖片選擇和圖片展示的實(shí)用開發(fā)功能。
介紹
PYPhotoBrowser:圖片未發(fā)布之前,圖片本地預(yù)覽和刪除。
YangMingShan:相冊選擇訪問嵌溢,相機(jī)使用。
使用方法
創(chuàng)建PYPhotosView(九宮格類型/直線類型)
PYPhotosView *squPhotosView = [PYPhotosView photosView];
squPhotosView.photosState = PYPhotosViewStateWillCompose;
squPhotosView.photoWidth = 80;
squPhotosView.photoHeight = 80;
squPhotosView.py_x = 20;
squPhotosView.py_y = 100;
squPhotosView.delegate = self;
[self.view addSubview:squPhotosView];
PYPhotosView *recPhotosView = [PYPhotosView photosView];
recPhotosView.photosState = PYPhotosViewStateWillCompose;
recPhotosView.photosMaxCol = 9;
recPhotosView.photoWidth = 80;
recPhotosView.photoHeight = 80;
recPhotosView.py_x = 20;
recPhotosView.py_y = 300;
recPhotosView.delegate = self;
[self.view addSubview:recPhotosView];
PYPhotosView代理方法請求打開相冊相機(jī)
- (void)photosView:(PYPhotosView *)photosView didAddImageClickedWithImages:(NSMutableArray *)images {
[self yms_presentCustomAlbumPhotoView:self.pickerViewController delegate:self];
}
訪問相機(jī)相冊
-(void)photoPickerViewControllerDidReceivePhotoAlbumAccessDenied:(YMSPhotoPickerViewController *)picker {
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"允許訪問相冊?" message:@"需要你的允許訪問相冊" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *dismissAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
UIAlertAction *settingsAction = [UIAlertAction actionWithTitle:@"去設(shè)置" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}];
[alertController addAction:dismissAction];
[alertController addAction:settingsAction];
[self presentViewController:alertController animated:YES completion:nil];
}
- (void)photoPickerViewControllerDidReceiveCameraAccessDenied:(YMSPhotoPickerViewController *)picker {
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"允許訪問相機(jī)漓踢?" message:@"需要你的允許訪問相機(jī)" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *dismissAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
UIAlertAction *settingsAction = [UIAlertAction actionWithTitle:@"去設(shè)置" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}];
[alertController addAction:dismissAction];
[alertController addAction:settingsAction];
[picker presentViewController:alertController animated:YES completion:nil];
}
獲得選中照片
- (void)photoPickerViewController:(YMSPhotoPickerViewController *)picker didFinishPickingImages:(NSArray *)photoAssets {
[picker dismissViewControllerAnimated:YES completion:^() {
PHImageManager *imageManager = [[PHImageManager alloc] init];
PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
options.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
options.networkAccessAllowed = YES;
options.resizeMode = PHImageRequestOptionsResizeModeExact;
options.synchronous = YES;
NSMutableArray *mutableImages = [NSMutableArray array];
for (PHAsset *asset in photoAssets) {
[imageManager requestImageDataForAsset:asset options:options resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
[mutableImages addObject:[UIImage imageWithData:imageData]];
}];
}
[self.recPhotosView setImages:mutableImages]; //將照片賦值給PhotosView
}];
}