简介
UIImage
对象、PHAsset
对象或指向图库资源、网络图片/视频或本地文件的 URL
来显示一个或多个图片或视频。MediaBrowser 可以无缝地处理从网络上下载和缓存照片。可以对照片进行缩放和左右滑动,还可以显示可定制的标题(可选)。这也可以用于使用网格视图或主图片视图允许用户选择一个或多个图片。
此外,MediaBrowser 使用最新的 SDWebImage 版本进行缓存,受 MWPhotoBrowser 启发
单个照片 | 多个照片和视频 |
---|---|
![]() |
![]() |
多个照片网格 | 多个照片选择 |
![]() |
![]() |
网络照片 | 网络照片网格 |
![]() |
![]() |
要求
MediaBrowser
用 Swift 5.0 编写,与 iOS 8.0+ 兼容
用法
基本
获取 MediaBrowser
并设置 MediaBrowserDelegate
let browser = MediaBrowser(delegate: self)
self.navigationController?.pushViewController(browser, animated: true)
//MediaBrowserDelegate
func numberOfMedia(in mediaBrowser: MediaBrowser) -> Int {
return mediaArray.count
}
func media(for mediaBrowser: MediaBrowser, at index: Int) -> Media {
if index < mediaArray.count {
return mediaArray[index]
}
return DemoData.localMediaPhoto(imageName: "MotionBookIcon", caption: "Photo at index is Wrong")
}
高级
您还可以在演示项目中查看所有用法。
属性 | 类型 |
---|---|
navigationBarTranslucent |
Bool |
navigationBarTextColor |
UIColor |
navigationBarTintColor |
UIColor |
statusBarStyle |
UIStatusBarStyle |
toolbarTextColor |
UIColor |
toolbarBarTintColor |
UIColor |
toolbarBackgroundColor |
UIColor |
hasBelongedToViewController |
Bool |
isVCBasedStatusBarAppearance |
Bool |
statusBarShouldBeHidden |
Bool |
displayActionButton |
Bool |
leaveStatusBarAlone |
Bool |
performingLayout |
Bool |
rotating |
Bool |
viewIsActive |
Bool |
didSavePreviousStateOfNavBar |
Bool |
skipNextPagingScrollViewPositioning |
Bool |
viewHasAppearedInitially |
Bool |
currentGridContentOffset |
CGPoint |
zoomPhotosToFill |
Bool |
displayMediaNavigationArrows |
Bool |
displaySelectionButtons |
Bool |
alwaysShowControls |
Bool |
enableGrid |
Bool |
enableSwipeToDismiss |
Bool |
startOnGrid |
Bool |
autoPlayOnAppear |
Bool |
hideControlsOnStartup |
Bool |
delayToHideElements |
TimeInterval |
captionAlpha |
CGFloat |
toolbarAlpha |
CGFloat |
loadingIndicatorInnerRingColor |
UIColor |
loadingIndicatorOuterRingColor |
UIColor |
loadingIndicatorInnerRingWidth |
CGFloat |
loadingIndicatorOuterRingWidth |
CGFloat |
loadingIndicatorFont |
UIFont |
loadingIndicatorFontColor |
UIColor |
loadingIndicatorShouldShowValueText |
Bool |
mediaSelectedOnIcon |
UIImage? |
mediaSelectedOffIcon |
UIImage? |
mediaSelectedGridOnIcon |
UIImage? |
mediaSelectedGridOffIcon |
UIImage? |
preCachingEnabled |
Bool |
cachingImageCount |
Int |
placeholderImage |
(image: UIImage, isAppliedForAll: Bool)? |
方法 | 说明 |
---|---|
setCurrentIndex(at index: Int) |
在开始时设置当前的索引路径。也建议在 preCachingEnabled 之前设置第一个。 |
委托 | 说明 |
---|---|
func numberOfMedia(in mediaBrowser: MediaBrowser) -> Int |
使用 MediaBrowser 所需的协议。返回媒体数量 |
func media(for mediaBrowser: MediaBrowser, at index: Int) -> Media |
使用 MediaBrowser 所需的协议。返回媒体 |
func mediaBrowserDidFinishModalPresentation(mediaBrowser: MediaBrowser) |
可选协议,用于 MediaBrowser 完成模态表示 |
func thumbnail(for mediaBrowser: MediaBrowser, at index: Int) -> Media |
可选协议,用于显示缩略图。返回媒体。建议使用较小的大小 |
func captionView(for mediaBrowser: MediaBrowser, at index: Int) -> MediaCaptionView? |
可选协议,用于显示 captionView。返回 MediaCaptionView。 |
func didDisplayMedia(at index: Int, in mediaBrowser: MediaBrowser) |
可选协议,当需要回调时 |
func actionButtonPressed(at photoIndex: Int, in mediaBrowser: MediaBrowser) |
可选协议,当需要关于动作按钮的回调时 |
func isMediaSelected(at index: Int, in mediaBrowser: MediaBrowser) -> Bool |
可选协议,当需要 about isMediaSelected 的回调 |
func mediaDid(selected: Bool, at index: Int, in mediaBrowser: MediaBrowser) |
在需要回调媒体选择时的可选协议 |
func title(for mediaBrowser: MediaBrowser, at index: Int) -> String? |
标题的可选协议 |
安装
Cocoapods
pod 'MediaBrowser'
Carthage
github "younatics/MediaBrowser"
参考
如果您在使用此库的应用程序中,请告诉我或创建一个pull request :)
更新
查看变更日志详细信息
作者
许可证
MediaBrowser 在 MIT 许可证下可用。更多信息请参阅 LICENSE 文件。