PhotoPicker 组件已被完全重构。
如果您正在使用旧遗留代码,可以在 pp-v1-legacy 分支中找到。阅读文档并迁移到新的 Photo Picker 版本。它包含库和示例项目,您可以用作参考。
Android 组件已被移动到其自身的独立 GitHub 仓库。
您可以在以下链接找到它以及示例项目: https://github.com/chute/photo-picker-plus-android
除了 Chute SDK(您也可以在这里找到它)之外的任何外部依赖项
https://github.com/chute/Chute-SDK-v2-iOS
此类允许您从任何受支持的在线源(例如 Facebook、Instagram 和 Dropbox 等)中选择照片或视频。它还替换了标准选择器,因为它允许您从设备中选择照片和视频,使用相机拍照或录制视频,或者仅选择您的库中的最新照片/视频。它支持多图选择,就像苹果的原生 Image Picker。
首先,您需要设置配置。按照Photo Picker 配置的说明,使用合适的配置初始化 PhotoPicker+ 组件。
BOOL
- 如果是 YES,选择器进行多图选择,如果是 NO,选择器进行单图选择。NSObject <PhotoPickerPlusDelegate>
- 此组件的代理。它应根据单图还是多图选择实现以下两个代理方法之一。- (void)imagePickerController:(PhotoPickerViewController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
- (void)imagePickerController:(PhotoPickerViewController *)picker didFinishPickingArrayOfMediaWithInfo:(NSArray *)info;
- (void)imagePickerControllerDidCancel:(PhotoPickerViewController *)picker;
您需要将 PhotoPickerViewController.h 实现在您的 .h 文件中。您还需要添加 <PhotoPickerViewControllerDelegate>
- (void)imagePickerControllerDidCancel:(PhotoPickerViewController *)picker{
if (self.popoverController) {
[self.popoverController dismissPopoverAnimated:YES];
}
else {
[self dismissViewControllerAnimated:YES completion:nil];
}
}
///////////////////////////
// Single Selection //
///////////////////////////
- (void)showPhotoPickerPlus {
PhotoPickerViewController *picker = [PhotoPickerViewController new];
[picker setDelegate:self];
[picker setIsMultipleSelectionEnabled:NO];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
if (![[self popoverController] isPopoverVisible]) {
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:picker];
[popover presentPopoverFromRect:[sender frame] inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
self.popoverController = popover;
}
else {
[[self popoverController] dismissPopoverAnimated:YES];
}
}
else {
[self presentViewController:picker animated:YES completion:nil];
}
}
- (void)imagePickerController:(PhotoPickerViewController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
//place code for when the user picks photos here and do any
//additional work such as removing the picker from the screen
}
///////////////////////////
// Multi Selection //
///////////////////////////
- (void)showPhotoPickerPlus {
PhotoPickerViewController *picker = [PhotoPickerViewController new];
[picker setDelegate:self];
[picker setIsMultipleSelectionEnabled:YES];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
if (![[self popoverController] isPopoverVisible]) {
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:picker];
[popover presentPopoverFromRect:[sender frame] inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
self.popoverController = popover;
}
else {
[[self popoverController] dismissPopoverAnimated:YES];
}
}
else {
[self presentViewController:picker animated:YES completion:nil];
}
}
- (void)imagePickerController:(PhotoPickerViewController *)picker didFinishPickingArrayOfMediaWithInfo:(NSArray *)info{
//place code for when the user picks photos here and do any
//additional work such as removing the picker from the screen
}