我正在尝试整合Viewer库,以查看相册中的照片和视频。除了一个,我整合了所有东西。 我不明白这条线在github链接上意味着什么: 您需要一系列符合可查看协议的项目。
可见协议:
public enum ViewableType: String {
case image
case video
}
public protocol Viewable {
var type: ViewableType { get }
var assetID: String? { get }
var url: String? { get }
var placeholder: UIImage { get }
func media(_ completion: @escaping (_ image: UIImage?, _ error: NSError?) -> Void)
}
这就是我们使用这个库的方式:
extension CollectionController: ViewerControllerDataSource {
func viewerController(_ viewerController: ViewerController, viewableAt indexPath: IndexPath) -> Viewable {
return photos[indexPath.row]
}
}
在此扩展程序中,我们必须返回Viewable,这就是我的问题。我有PHAssets但需要制作可视类型。怎么做?
供参考检查查看器库:https://github.com/bakkenbaeck/Viewer
任何帮助都将不胜感激。
答案 0 :(得分:2)
我相信您需要以下内容:
extension PHAsset: Viewable {
var type: ViewableType { return .image }
var assetID: String? { return "item's id" }
var url: String? { return "item's url" }
var placeholder: UIImage { return defaultImage }
func media(...) {
// implement this function
}
}
或者您可以创建自己的课程:
class MyAsset: Viewable {
var asset: PHAsset
var type: ViewableType { return .image }
... and others ...
init(asset: PHAsset) {
self.asset = asset
}
}