MediaViewer

一款舒适的媒体查看器,如同 iOS 标准的查看器。

MediaViewerDemo MediaViewerDemo _camera

要求

如何使用

  1. 创建一个符合 MediaViewerDataSource 协议的类型。

    extension YourViewController: MediaViewerDataSource {
        
        // You can specify any type that conforms to `Hashable`.
        typealias MediaIdentifier = UIImage
        
        // var images: [UIImage]
        
        func mediaIdentifiers(
            for mediaViewer: MediaViewerViewController
        ) -> [MediaIdentifier] {
            images
        }
        
        func mediaViewer(
            _ mediaViewer: MediaViewerViewController,
            mediaWith mediaIdentifier: MediaIdentifier // UIImage
        ) -> Media {
            .sync(mediaIdentifier)
            // Or you can fetch media asynchronously by `.async { ... }`
        }
        
        func mediaViewer(
            _ mediaViewer: MediaViewerViewController,
            transitionSourceViewForMediaWith mediaIdentifier: MediaIdentifier
        ) -> UIView? {
            // Return a view that is animated when the viewer opens or closes.
            imageView(for: mediaIdentifier)
        }
    }
  2. 创建一个 MediaViewerViewController 实例并将其推送(push)。就这么简单!🎉

    let mediaViewer = MediaViewerViewController(opening: image, dataSource: self)
    navigationController?.delegate = mediaViewer
    navigationController?.pushViewController(mediaViewer, animated: true)

查看演示程序以获得更详细的用法。

在你的项目中使用 MediaViewer

要在 SwiftPM 项目中使用 MediaViewer 库,请将以下行添加到你的 Package.swift 文件中的依赖项

.package(url: "https://github.com/jrsaruo/MediaViewer", from: "0.1.3"),

并将 MediaViewer 添加为你的目标的依赖项

.target(name: "<target>", dependencies: [
    .product(name: "MediaViewer", package: "MediaViewer"),
    // other dependencies
]),

最后,在你的源代码中添加 import MediaViewer