Image viewer (or Lightbox) with support for local and remote videos and images
Improve video playing errors
Removes the need for having an ID.
This is not a breaking change, if you have ID and it's not used the library won't require you changes and everything will work as before.
public func reload(at indexPath: IndexPath)
func viewerController(_ viewerController: ViewerController, didFailPlayingVideoAt indexPath: IndexPath, error: NSError)
public enum ViewerItemType: String {
case image
case video
}
public protocol ViewerItem {
var type: ViewerItemType { get }
var id: String { get }
var assetID: String? { get }
var url: String? { get }
var placeholder: UIImage { get set }
func media(_ completion: @escaping (_ image: UIImage?, _ error: NSError?) -> ())
}
public enum ViewableType: String {
case image
case video
}
public protocol Viewable {
var type: ViewableType { get }
var id: String { get }
var assetID: String? { get }
var url: String? { get }
var placeholder: UIImage { get }
func media(_ completion: @escaping (_ image: UIImage?, _ error: NSError?) -> ())
}
// Before
func viewerController(_ viewerController: ViewerController, itemAtIndexPath indexPath: IndexPath) -> ViewerItem
// After
func viewerController(_ viewerController: ViewerController, viewableAt indexPath: IndexPath) -> Viewable
// Before
func viewerController(_ viewerController: ViewerController, didChangeIndexPath indexPath: IndexPath)
// After
func viewerController(_ viewerController: ViewerController, didChangeFocusTo indexPath: IndexPath)
ViewerController
now includes a flag to enable or disable autoplaying videos. By default is false.
self.viewerController.autoplayVideos = true