照片选择器,使用简单,几行代码就可以完成集成:PhotoPicker
jopen
9年前
PhotoPicker
用于发表图片时候选择相册图片和拍照这样的需求,虽然网上也有很多类似的控件,写的挺不错的,但是深入使用就有些问题,还是自己写算了;网上的一些轮子看起来好像能用,但深入之后总是没那么完善需要改了各种测试,用到自己项目里面需要费点时间;再加上定制化和兼容问题,和后期考虑的一些需求,就更应该自己开个坑了。
目前这个控件自己用起来非常简单,就几行代码+委托就可以了。要做定制化也比较容易,项目为了兼容iOS7,读取照片使用AssetsLibrary。
布局基本上都是基于Masonry实现,因为项目里面都在用它。
使用方式:
BoPhotoPickerViewController *picker = [[BoPhotoPickerViewController alloc] init]; picker.maximumNumberOfSelection = 5; picker.multipleSelection = YES; picker.assetsFilter = [ALAssetsFilter allPhotos]; picker.showEmptyGroups = YES; picker.delegate=self; picker.selectionFilter = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) { return YES; }]; [self presentViewController:picker animated:YES completion:nil];
委托:
#pragma mark - BoPhotoPickerProtocol -(void)photoPickerDidCancel:(BoPhotoPickerViewController *)picker{ [picker dismissViewControllerAnimated:YES completion:nil]; } -(void)photoPicker:(BoPhotoPickerViewController *)picker didSelectAssets:(NSArray *)assets{ } -(void)photoPicker:(BoPhotoPickerViewController *)picker didSelectAsset:(ALAsset *)asset{ NSLog(@"%s",__func__); } -(void)photoPicker:(BoPhotoPickerViewController *)picker didDeselectAsset:(ALAsset *)asset{ NSLog(@"%s",__func__); } -(void)photoPickerDidMaximum:(BoPhotoPickerViewController *)picker{ NSLog(@"%s",__func__); } -(void)photoPickerDidMinimum:(BoPhotoPickerViewController *)picker{ NSLog(@"%s",__func__); } -(void)photoPickerTapAction:(BoPhotoPickerViewController *)picker{ }