符合协议的物品集合 ? : 查看者 Swift
Collection of items that conform to the protocol ? : Viewer Swift
我正在尝试集成查看器库以查看相册中的照片和视频。除了一个,我已经整合了所有东西。
我不明白 github link 这行的意思:
您需要一组符合 Viewable 协议的项目。
可查看协议:
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]
}
}
在此扩展中,我们必须 return 可见,这就是我的问题。我有 PHAssets 但需要制作 Viewable 类型。怎么做?
查看查看器库以供参考:https://github.com/bakkenbaeck/Viewer
如有任何帮助,我们将不胜感激。
我相信您需要以下内容:
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:
class MyAsset: Viewable {
var asset: PHAsset
var type: ViewableType { return .image }
... and others ...
init(asset: PHAsset) {
self.asset = asset
}
}
我正在尝试集成查看器库以查看相册中的照片和视频。除了一个,我已经整合了所有东西。 我不明白 github link 这行的意思: 您需要一组符合 Viewable 协议的项目。
可查看协议:
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]
}
}
在此扩展中,我们必须 return 可见,这就是我的问题。我有 PHAssets 但需要制作 Viewable 类型。怎么做?
查看查看器库以供参考:https://github.com/bakkenbaeck/Viewer
如有任何帮助,我们将不胜感激。
我相信您需要以下内容:
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:
class MyAsset: Viewable {
var asset: PHAsset
var type: ViewableType { return .image }
... and others ...
init(asset: PHAsset) {
self.asset = asset
}
}