一款舒适的媒体查看器,如同 iOS 标准的查看器。
创建一个符合 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)
}
}
创建一个 MediaViewerViewController
实例并将其推送(push)。就这么简单!🎉
let mediaViewer = MediaViewerViewController(opening: image, dataSource: self)
navigationController?.delegate = mediaViewer
navigationController?.pushViewController(mediaViewer, animated: true)
查看演示程序以获得更详细的用法。
要在 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
。