📸 MosaiqueAssetsPicker
您的可自定义资源选择器。
概述
🔶 需求
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
作者
- Muukii [email protected]
- Aymen Rebouh [email protected]
- Antoine Marandon [email protected]
许可
AssetsPicker遵循MIT许可证发布。