Swiftpack.co -  SilenceLove/HXPHPicker as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
SilenceLove/HXPHPicker
Photo/Video Selector-Supports LivePhoto, GIF selection, online download of resources on iCloud, and editing of photos/videos
.package(url: "https://github.com/SilenceLove/HXPHPicker.git", from: "1.2.1")

功能

  • ☑ UI 外观支持浅色/深色/自动/自定义
  • ☑ 支持多选/混合内容选择
  • ☑ 支持的媒体类型:
    • ☑ Photo
    • ☑ GIF
    • ☑ Live Photo
    • ☑ Video
  • ☑ 支持的本地资源类型:
    • ☑ Photo
    • ☑ Video
    • ☑ GIF
    • ☐ Live Photo
  • ☑ 支持的网络资源类型:
    • ☑ Photo
    • ☑ Video
  • ☑ 支持下载iCloud上的资源
  • ☑ 支持手势返回
  • ☑ 支持滑动选择
  • ☑ 编辑图片(支持动图、网络资源)
    • ☑ 涂鸦
    • ☑ 贴纸
    • ☑ 文字
    • ☑ 裁剪
    • ☑ 马赛克
    • ☑ 滤镜
  • ☑ 编辑视频(支持网络资源)
    • ☑ 贴纸(支持GIF)
    • ☑ 文字
    • ☑ 配乐(支持歌词字幕)
    • ☑ 裁剪
  • ☑ 相册展现方式
    • ☑ 单独列表
    • ☑ 弹窗
  • ☑ 多平台支持
    • ☑ iOS
    • ☑ iPadOS
  • ☑ 国际化支持
    • ☑ 英文 (en)
    • ☑ 简体中文 (zh-Hans)
    • ☑ 繁体中文 (zh-Hant)
    • ☑ 日语 (ja)
    • ☑ 韩语 (ko)
    • ☑ 泰语 (th)
    • ☑ 印尼语 (id)
    • ☑ 自定义语言 (custom)
    • ☐ 更多支持... (欢迎PR)

要求

  • iOS 10.0+
  • Xcode 12.5+
  • Swift 5.4+

安装

Swift Package Manager

⚠️ 需要 Xcode 12.0 及以上版本来支持资源文件/本地化文件的添加。

dependencies: [
    .package(url: "https://github.com/SilenceLove/HXPHPicker.git", .upToNextMajor(from: "1.2.1"))
]

CocoaPods

将下面内容添加到 Podfile,并执行依赖更新。

pod 'HXPHPicker'

Carthage

将下面内容添加到 Cartfile,并执行依赖更新。

github "SilenceLove/HXPHPicker"

使用方法

我们在 Wiki 中提供了更详细的使用说明。

准备工作

按需在你的 Info.plist 中添加以下键值:

Key 模块 备注
NSPhotoLibraryUsageDescription Picker 允许访问相册
NSPhotoLibraryAddUsageDescription Picker 允许保存图片至相册
PHPhotoLibraryPreventAutomaticLimitedAccessAlert Picker 设置为 YES iOS 14+ 以禁用自动弹出添加更多照片的弹框(Picker 已适配 Limited 功能,可由用户主动触发,提升用户体验)
NSCameraUsageDescription Camera 允许使用相机
NSMicrophoneUsageDescription Camera 允许使用麦克风

快速上手

import HXPHPicker

class ViewController: UIViewController {

    func presentPickerController() {
        // 设置与微信主题一致的配置
        let config = PhotoTools.getWXPickerConfig()
        let pickerController = PhotoPickerController.init(picker: config)
        pickerController.pickerDelegate = self
        // 当前被选择的资源对应的 PhotoAsset 对象数组
        pickerController.selectedAssetArray = selectedAssets 
        // 是否选中原图
        pickerController.isOriginal = isOriginal
        present(pickerController, animated: true, completion: nil)
    }
}

extension ViewController: PhotoPickerControllerDelegate {
    
    /// 选择完成之后调用
    /// - Parameters:
    ///   - pickerController: 对应的 PhotoPickerController
    ///   - result: 选择的结果
    ///     result.photoAssets  选择的资源数组
    ///     result.isOriginal   是否选中原图
    func pickerController(_ pickerController: PhotoPickerController, 
                            didFinishSelection result: PickerResult) {
        result.getImage { (image, photoAsset, index) in
            if let image = image {
                print("success", image)
            }else {
                print("failed")
            }
        } completionHandler: { (images) in
            print(images)
        }
    }
    
    /// 点击取消时调用
    /// - Parameter pickerController: 对应的 PhotoPickerController
    func pickerController(didCancel pickerController: PhotoPickerController) {
        
    }
}

更新日志

版本 发布时间 Xcode Swift iOS
v1.2.1 2021-09-04 12.5.1 5.4.2 10.0+
v1.1.9 2021-08-16 12.5.1 5.4.2 10.0+
v1.1.7 2021-08-06 12.5.1 5.4.2 10.0+
v1.1.6 2021-08-02 12.5.1 5.4.2 10.0+
v1.1.5 2021-07-28 12.5.1 5.4.2 10.0+

版权协议

HXPHPicker 基于 MIT 协议进行分发和使用,更多信息参见协议文件

GitHub

link
Stars: 75
Last commit: Yesterday

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Dependencies

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics