QuickPicker 0.9.2

QuickPicker 0.9.2

Manuel 维护。



 
依赖项
KVFetcher>= 0
RxCocoa>= 0
RxSwift>= 0
RxRelay>= 0
 

  • manuelvrhovac

logo

使用 QuickPicker 从用户的照片库中选择媒体,就像 UIImagePickerController

内容

要求

  • iOS 10.0+
  • Xcode 10.0+
  • Swift 4.2+
  • RxSwift 和 KVFetcher 库

特性

单选或多选项目

  • 图片、视频或两者都选
  • 限制项目数量
  • 滑动和上下滚动
  • 撤销最多 20 步

更好的导航和 UI

  • 查看项目的属性(收藏、视频时长、慢动作...)
  • 根据设备类型(平板/手机)设置缩略图大小
  • 使用标签栏在 1-2 按击中跳转到特定收藏

预览屏幕

  • 在继续之前预览选定的图片和视频
  • 快速滚动通过项目列表(如果超过 30 个)
  • 移除项目

工作流程

logo

用法

选择单张图片

var config = QuickPicker.Config(selectionMode: .single, allowedMedia: .images)

let quickPicker = QuickPicker(configuration: config, preselected: nil){ quickPicker, result in
    quickPicker.dismiss(animated: true)
    switch result {
    case .finished(let assets):
        print("Picked \(assets.count) assets")
    case .canceled:
        print("Canceled")
    }
}

present(quickPicker, animated: true, completion: nil)

注意: QuickPicker 结果是 PHAsset 对象数组,而不是完整大小图像或缩略图。

若要选择多个项目以及图像和视频,请将配置修改为此

var config = QuickPicker.Config(selectionMode: .multiple(max: 30), allowedMedia: [.images, .videos])
...

所有配置选项

  • allowedMedia: AllowedMedia - 选项集 - 允许挑选的媒体(图像/视频/两者都)。
  • picking: SelectionMode - 可以是单个或多个(带限制或不限)。
  • customTabKinds: [TabKind] - 显示在分段控制中的选项(默认:最近添加、收藏、我的专辑、iCloud 专辑、智能相册)
  • needsConfirmation: Bool - 应显示一个弹出窗口,用户可以在其中查看挑选的图片
  • showsLimit: Bool - 如有限制数量,显示剩余多少张照片或不要显示
  • preselected: [PHAsset] - 应预先选择的资产
  • presentFirstOfferMoreLater: Bool - 与 WhatsApp 的工作方式类似 - 首先挑选单个图像/视频,然后提供继续挑选多个的选项。
  • maximumThumbnailSize: [UIUserInterfaceIdiom: CGFloat] - 收藏品视图中项目缩略图的尺寸。当低于此值时,它将被调整以填充屏幕宽度。默认:[.phone: 100, .pad: 130]
  • tintColor: UIColor? - 选择器的 tintColor(nil = 常见的 iOS 蓝色)

定义自定义标签

logo

底部的标签栏(分段控件)用于跳转到特定集合(如最近添加或收藏),或跳转到一组集合(如 iCloud 共享或智能相册)。选择器中出现的标签在 .config.customTabKinds 中定义

var config = QuickPicker.Config(selectionMode: .single, allowedMedia: .images)
config.tabKinds = [.recentlyAdded, .favorites, .groupRegular, .groupSmart]

可能的 TabKinds

  • 分组(相册列表)
  • groupRegular - 我的相册
  • groupShared - iCloud 共享相册
  • groupSmart - 智能相册(如下所示)
  • 单个(项目列表)
  • recentlyAdded
  • userLibrary(相册)
  • 收藏
  • 视频
  • 屏幕快照
  • selfPortraits(自拍)
  • 全景 ...

依赖关系

如果您使用 CocoaPods 安装 QuickPicker,两者应该会自动添加到项目中。如果已经使用了某个版本的 RxSwift,或者不打算使用 CocoaPods,我还不知道会是什么样。

未来开发思路

  • 在项目列表中预览和弹出图片和视频。
  • 摄像机捕获 - 一个屏幕或按钮,用于跳转到摄像头界面
  • 使配置响应式 - 可以动态更改缩略图大小或 tintColor 等
  • 完成时提供全尺寸或缩小后的图片和视频对象,而不是仅仅提供一个 PHAsset 数组
  • 实时视频缩略图(可选,适用于更强大的设备)

安装

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理器。要使用 CocoaPods 将 QuickPicker 集成到 Xcode 项目中,请在您的 Podfile 中指定它。

platform :ios, '10.0'
use_frameworks!

target '<Your Target Name>' do
pod 'QuickPicker', '~> 0.9.2'
end

然后在终端中运行 pod install 命令。

Carthage

Carthage 是一个去中心化的依赖管理器,它可以构建你的依赖并提供你二进制框架。要使用 Carthage 将 QuickPicker 集成到你的 Xcode 项目中,请在你的 Cartfile 中指定它。

github "manuelvrhovac/QuickPicker" ~> 0.9.2

运行 carthage update 构建框架,并将构建的 QuickPicker.framework 拖动到你的 Xcode 项目中。

手动

如果你不愿意使用上述所说的任何依赖管理器,你可以手动将 QuickPicker 集成到你的项目中。

许可

QuickPicker 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE 文件。