MosaiqueAssetsPicker 1.3.3

MosaiqueAssetsPicker 1.3.3

Antoine Marandon 维护。



  • Antoine Marandon, Aymen Rebouh, John Estropia 和 Muukii

📸MosaiqueAssetsPicker

您的可自定义资源选择器。

概述

Whimsical AssetPicker

🔶需求

iOS 10.0+ Xcode 10.1+ Swift 4.2+

📱功能

  • 加载相册和其他相册
  • 自定义单元格
  • 自定义样式和本地化
  • 自定义头部
  • 云端照片
  • 权限管理
  • 其他资源(LivePhoto、视频、Gif 等)
  • 后台下载
  • 选择计数器(徽章?)

👨‍💻 使用

默认值

let photoPicker = MosaiqueAssetPickerViewController()
photoPicker.pickerDelegate = self

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

自定义

使用自定义单元格类

let cellRegistrator = AssetPickerCellRegistrator()
cellRegistrator.register(cellClass: Demo2AssetCell.self, forCellType: .asset)
cellRegistrator.register(cellClass: Demo2AssetCollectionCell.self, forCellType: .assetCollection)

let photoPicker = MosaiqueAssetPickerViewController()
                    .setCellRegistrator(cellRegistrator)

photoPicker.pickerDelegate = self

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

使用自定义Nib类

let assetNib = UINib(nibName: String(describing: Demo3AssetNib.self), bundle: nil)
let assetCollectionNib = UINib(nibName: String(describing: Demo3AssetCollectionNib.self), bundle: nil)

let cellRegistrator = AssetPickerCellRegistrator()
cellRegistrator.register(nib: assetNib, forCellType: .asset)
cellRegistrator.register(nib: assetCollectionNib, forCellType: .assetCollection)

let photoPicker = MosaiqueAssetPickerViewController()
                    .setCellRegistrator(cellRegistrator)

photoPicker.pickerDelegate = self

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

添加视图头

let headerView = UIView()
headerView.backgroundColor = .orange
headerView.translatesAutoresizingMaskIntoConstraints = false
headerView.heightAnchor.constraint(equalToConstant: 120).isActive = true

let photoPicker = MosaiqueAssetPickerViewController()
                    .setHeaderView(headerView, isHeaderFloating: true)

photoPicker.pickerDelegate = self

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

其他自定义

func setSelectionMode(_ selectionMode: SelectionMode)
func setSelectionMode(_ selectionColor: UIColor)
func setSelectionColor(_ tintColor: UIColor)
func setNumberOfItemsPerRow(_ numberOfItemsPerRow: Int)
func setHeaderView(_ headerView: UIView, isHeaderFloating: Bool)
func setCellRegistrator(_ cellRegistrator: AssetPickerCellRegistrator)
func setMediaTypes(_ supportOnlyMediaType: [PHAssetMediaType])
func disableOnLibraryScrollAnimation()
func localize(_ localize: LocalizedStrings)

public enum SelectionMode {
    case single
    case multiple(limit: Int)
}

public struct LocalizedStrings {
    public var done: String = "Done"
    public var next: String = "Next"
    public var dismiss: String = "Dismiss"
    public var collections: String = "Collections"
    public var changePermissions: String = "Change your Photo Library permissions"
}

AssetFuture使用

AssetFuture可以在资产被选中后但在资产准备/下载之前,用来关闭视图控制器。它可以通过代理获得

func photoPicker(_ pickerController: UIViewController, didPickAssets assets: [AssetFuture])

您可以使用onThumbnailCompletion: ((Result<UIImage, NSError>>) -> Void)?异步检索缩略图,并使用finalImageResult: Result<UIImage, NSError>?获取最终图像

只要您或MosaiqueAssetPickerViewController保留AssetFuture,即使应用进入后台,也会通过网络(如果需要)获取资产。释放时取消检索请求。

iOS14

新iOS版本对传统的图片选择器进行了大量改进。如果用户运行iOS 14,您可以通过使用新的API默认使用它。

   MosaiqueAssetPickerPresenter.controller(delegate: self)

安装

CocoaPods

pod 'MosaiqueAssetsPicker'

使用MosaiqueAssetsPicker的应用

  • Pairs Engage

贡献

欢迎贡献。您可以使用swiftformat格式化您的代码

swiftformat .

安装

brew install swiftformat

作者

许可

AssetsPicker遵循MIT许可证发布。