PhotosUI Swift 完整指南:照片视频选择框架详解

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

PhotosUI for Swift:照片与视频选择完整指南

1. 什么是 PhotosUI 及其用途

PhotosUI 是 Apple 提供的框架,为设备媒体库操作提供现成的用户界面。它属于 UIKit 的一部分,是底层 Photos 框架的上层封装。PhotosUI 的主要目标是让开发者能够快速、标准化地实现照片和视频选择功能,无需深入处理复杂的权限管理、相册导航和缩略图显示逻辑。

为什么需要它?首先,它能节省时间。无需从头编写自己的媒体浏览器,您可以直接获得一个用户熟悉且经过打磨的界面。其次,它确保安全性和符合 Apple 指南。PhotosUI 自动处理库访问请求(通过 PHPhotoLibrary),并正确适配新版本 iOS,包括隐私和有限访问支持。第三,它灵活可定制:您可以调整外观、允许多选、仅筛选照片或视频,甚至配置编辑行为。

主要使用场景:个人资料头像、消息附件、社交媒体视频上传、拼图制作、滤镜和编辑器集成。PhotosUI 非常适合任何需要访问用户媒体库的应用。

2. 安装方法

PhotosUI 是 iOS SDK 标准库的一部分。无需通过 CocoaPods、Swift Package Manager 或 Carthage 安装。只需在项目中导入框架即可。

重要提示:PhotosUI 从 iOS 8.0 起可用。但要使用所有现代功能(如 PHPickerViewController),建议使用 iOS 14+。

// 导入框架
import PhotosUI

无需任何终端命令。只需在需要使用媒体选择功能的文件中添加 import PhotosUI。

3. 快速上手:最小可用示例

向用户展示照片选择界面的最简单方式是使用 PHPickerViewController(iOS 14+)。该控制器在独立进程中运行,提高了性能和安全性。

示例:屏幕上的按钮,点击后打开选择器。

import UIKit
import PhotosUI

class ViewController: UIViewController, PHPickerViewControllerDelegate {

    @IBAction func selectPhotoTapped(_ sender: UIButton) {
        // 1. 创建选择器配置
        var config = PHPickerConfiguration()
        config.selectionLimit = 1 // 单张照片
        config.filter = .images // 仅图片

        // 2. 创建控制器
        let picker = PHPickerViewController(configuration: config)
        picker.delegate = self

        // 3. 显示选择器
        present(picker, animated: true)
    }

    // MARK: - PHPickerViewControllerDelegate
    func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
        dismiss(animated: true)

        guard let provider = results.first?.itemProvider else { return }

        // 4. 加载 UIImage
        if provider.canLoadObject(ofClass: UIImage.self) {
            provider.loadObject(ofClass: UIImage.self) { image, error in
                DispatchQueue.main.async {
                    // 使用获取到的图片
                    print("图片已加载:\(String(describing: image))")
                }
            }
        }
    }
}                    

推荐