FYPhoto 2.3.2

FYPhoto 2.3.2

xiaoyang 维护。



 
依赖项
SDWebImage/Core>= 0
FYVideoCompressor>= 0
 

FYPhoto 2.3.2

  • 作者
  • t2je

FYPhoto

FYPhoto 是一个使用 Swift 编写的 iOS 照片/视频选择器和浏览器。它功能丰富且可高度自定义,以符合您的 App 需求。

Version License Platform

示例

要运行示例项目,首先克隆仓库,然后在 Example 目录中运行 pod install

安装 - 配置 - 用法 - 语言 - UI 自定义

快速尝试:先运行 pod repo update,然后 pod try FYPhoto

这些功能只需要几行代码即可实现!

显著功能

📷 照片
🎥 视频
✂️ 裁剪
⚡️ 闪光灯
💧 水印
📁 相册
🔢 多选
📏 视频剪辑
还有更多...

要求

iOS 11或更高版本

安装

使用CocoaPods

首先,请确保运行pod repo update以获取最新版本。

pod 'FYPhoto'添加到您的Podfile中,并运行pod install。同时,请在Podfile中添加use_frameworks!

target 'MyApp'
pod 'FYPhoto'
use_frameworks!

使用Swift Package Manager

Swift Package Manager (SwiftPM)是一个用于管理Swift代码及C系列依赖分发的工具。从Xcode 11开始,SwiftPM已原生集成至Xcode。

FYPhoto从2.1.0版本开始支持SwiftPM。要使用SwiftPM,您应该使用Xcode 11打开项目。点击文件 -> Swift Packages -> 添加包依赖,输入FYPhoto仓库的URL。或者,您也可以使用GitHub账号登录Xcode,只需键入FYPhoto即可搜索。

选择包后,您可以选择依赖类型(标记版、分支或提交)。然后Xcode将为您设置所有这些项目。

如果您是一个框架作者并且使用FYPhoto作为依赖,请更新您的Package.swift文件。

let package = Package(
    dependencies: [
        .package(url: "https://github.com/T2Je/FYPhoto.git", from: "2.2.9")
    ],
    // ...
)

配置列表条目

为了让你的应用访问相机和相册,你需要添加以下配置列表条目

  • 隐私 - 相机使用说明(照片/视频)
  • 隐私 - 照片库使用说明(库)
  • 隐私 - 麦克风使用说明(视频)
<key>NSCameraUsageDescription</key>
<string>yourWording</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>yourWording</string>
<key>NSMicrophoneUsageDescription</key>
<string>yourWording</string>

配置

所有配置端点都位于FYPhotoPickerConfiguration。以下是默认值供参考,请随意调整:

选择器

var pickerConfig = FYPhotoPickerConfiguration()
// [Edit configuration here ...]
// Build a picker with your configuration
let photoPicker = PhotoPickerViewController(configuration: pickerConfig)

常规

pickerConfig.selectionLimit = 0
pickerConfig.supportCamera = true
pickerConfig.mediaFilter = [.image, .video]

// Color
let colorConfig = FYColorConfiguration()
colorConfig.topBarColor = FYColorConfiguration.BarColor(itemTintColor: .red,
                                                        itemDisableColor: .gray,
                                                        itemBackgroundColor: .black,
                                                        backgroundColor: .blue)

// Similar setting code for pickerBottomBarColor and browserBottomBarColor

pickerConfig.colorConfiguration = colorConfig

视频

pickerConfig.compressedQuality = .mediumQuality
pickerConfig.maximumVideoMemorySize = 40 // MB
pickerConfig.maximumVideoDuration = 15 // Secs

浏览器

let photoBrowser = PhotoBrowserViewController.create(photos: photos, initialIndex: 0)
let photosBrowser = PhotoBrowserViewController.create(photos: [photo],
                                                      initialIndex: 0) {
            $0
                .buildPageControl()
                .buildBottomToolBar()
                .buildNavigationBar()
                .buildCaption()
                .buildThumbnailsForSelection()
                .showDeleteButtonForBrowser()
                .setMaximumCanBeSelected(1)
        }

使用方法

首先,请导入 FYPhoto

选择器

let photoPickerVC = PhotoPickerViewController(configuration: pickerConfig)
    
photoPickerVC.selectedPhotos = { [weak self] images in
//            images.forEach {
//                $0.asset
//                $0.data
//                $0.image
//            }
}

photoPickerVC.selectedVideo = { [weak self] selectedResult in
    switch selectedResult {
    case .success(let video):
//                video.briefImage
//                video.url
    case .failure(let error):
        print("selected video error: \(error)")
    }
}
photoPickerVC.modalPresentationStyle = .fullScreen
self.present(photoPickerVC, animated: true, completion: nil)

浏览器

let image = Photo.photoWithURL(url) // Similar init method for asset, image, data
let photoBrowser = PhotoBrowserViewController.create(photos: [image], initialIndex: 0)
// Use `.fyphoto` to easily bring smoothly drag-drop animation to your app.
self.fyphoto.present(photoBrowser, animated: true, completion: nil)

完成!

语言

🇺🇸英语, 🇨🇳中文。

如果您的语言不受支持,您可以通过提交包含您的 Localizable.strings 文件的 issue 或 pull request 来添加新的语言!

UI 自定义

我们尽力保持最基本的操作,所以这项功能主要通过原生 API 实现。

参考

本项目参考了以下项目

依赖

FYPhoto 依赖于 SDWebImage 来提供异步图像下载功能并支持缓存。

Obj-C 支持

Objective-C不受支持,这不在我们的路线图上。Swift是未来,放弃Obj-C是我们为了保持这个库的速度必须付出的代价 :)

计划

为编辑照片添加更多功能,包括过滤器马赛克等。

许可

FYPhoto采用MIT许可发布。

Swift 版本

Swift 5.4。