PhotoPickerPlus 2.3.0

PhotoPickerPlus 2.3.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2015年2月

Oliver Dimitrov 维护。



  • by
  • Oliver Dimitrov

重要

PhotoPicker 组件已被完全重构。

如果您正在使用旧遗留代码,可以在 pp-v1-legacy 分支中找到。阅读文档并迁移到新的 Photo Picker 版本。它包含库和示例项目,您可以用作参考。

原生 Android 组件

Android 组件已被移动到其自身的独立 GitHub 仓库。

您可以在以下链接找到它以及示例项目: https://github.com/chute/photo-picker-plus-android

PhotoPickerPlus

除了 Chute SDK(您也可以在这里找到它)之外的任何外部依赖项

https://github.com/chute/Chute-SDK-v2-iOS

描述

此类允许您从任何受支持的在线源(例如 Facebook、Instagram 和 Dropbox 等)中选择照片或视频。它还替换了标准选择器,因为它允许您从设备中选择照片和视频,使用相机拍照或录制视频,或者仅选择您的库中的最新照片/视频。它支持多图选择,就像苹果的原生 Image Picker。

截图

screen1 screen2 screen3 screen4 screen5 screen6 screen7 screen8 screen9 screen10 screen11 screen12 screen13

配置

首先,您需要设置配置。按照Photo Picker 配置的说明,使用合适的配置初始化 PhotoPicker+ 组件。

初始化

  • isMultipleSelectionEnabled - BOOL - 如果是 YES,选择器进行多图选择,如果是 NO,选择器进行单图选择。
  • delegate 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
    }

教程

在现有项目中添加 PhotoPicker+

创建 PhotoPicker+ 示例项目