Lightbox
Lightbox 是一个方便易用的 iOS 应用图片查看器,拥有您所期望的所有功能:
目录
使用方法
控制器
要启动幻灯片,只需实例化 LightboxController
,设置所需的代理并呈现它:
// 创建图片数组
let images = [
LightboxImage(imageURL: URL(string: "https://cdn.arstechnica.net/2011/10/05/iphone4s_sample_apple-4e8c706-intro.jpg")!),
LightboxImage(
image: UIImage(named: "photo1")!,
text: "这是一个从 URL 加载的远程图片示例"
),
LightboxImage(
image: UIImage(named: "photo2")!,
text: "",
videoURL: URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
),
LightboxImage(
image: UIImage(named: "photo3")!,
text: "这是一个本地图片示例。"
)
]
// 创建 LightboxController 实例
let controller = LightboxController(images: images)
// 设置代理
controller.pageDelegate = self
controller.dismissalDelegate = self
// 使用动态背景
controller.dynamicBackground = true
// 呈现控制器
present(controller, animated: true, completion: nil)
代理
如果您想收到页面导航更改的通知,请使用 LightboxControllerPageDelegate
。
extension ViewController: LightboxControllerPageDelegate {
func lightboxController(_ controller: LightboxController, didMoveToPage page: Int) {
print(page)
}
}
使用 LightboxControllerDismissalDelegate
来接收控制器即将被关闭的通知。请注意,如果 LightboxController
最初是被呈现的,它会自行关闭。
extension ViewController: LightboxControllerDismissalDelegate: class {
func lightboxControllerWillDismiss(_ controller: LightboxController) {
// ...
}
}
图片加载
默认情况下,图片使用 Imaginary 进行可靠的加载和缓存。但是可以使用 LightboxConfig 轻松更改此行为。
LightboxConfig.loadImage = {
imageView, URL, completion in
// 自定义图片加载
}
视频
Lightbox 可以使用默认的 AVPlayerViewController
显示和播放视频。通过使用 videoURL
显示视频:
LightboxImage(
image: UIImage(named: "photo2")!,
text: "",
videoURL: NSURL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
)
如果需要,可以覆盖视频处理:
LightboxConfig.handleVideo = { from, videoURL in
// 自定义视频处理
let videoController = AVPlayerViewController()
videoController.player = AVPlayer(url: videoURL)
from.present(videoController, animated: true) {
videoController.player?.play()
}
}
配置
通过覆盖 Lightbox 配置结构中的静态变量来配置 UI 元素的文本、颜色和字体。例如:
LightboxConfig.CloseButton.image = UIImage(named: ImageList.Lightbox.closeButton)
LightboxConfig.CloseButton.textAttributes = TextAttributes.Lightbox.closeButton
LightboxConfig.CloseButton.text = "完成"
LightboxConfig.DeleteButton.image = UIImage(named: ImageList.Lightbox.deleteButton)
LightboxConfig.DeleteButton.textAttributes = TextAttributes.Lightbox.deleteButton
LightboxConfig.DeleteButton.text = "删除"
LightboxConfig.InfoLabel.ellipsisText = "显示更多"
安装
Lightbox 可通过 CocoaPods 安装。只需在您的 Podfile 中添加以下行:
pod 'Lightbox'
要快速尝试 Lightbox 的演示项目,只需在终端中运行 pod try Lightbox
。
Lightbox 也可通过 Carthage 安装。只需在您的 Cartfile 中写入:
github "hyperoslo/Lightbox"
要手动安装 Lightbox,只需下载并将 Sources
和 Images
文件夹拖放到您的项目中。
作者
Hyper Interaktiv AS, ios@hyper.no
贡献
我们非常欢迎您为 Lightbox 做出贡献,请查看 CONTRIBUTING 文件了解更多信息。
许可证
Lightbox 基于 MIT 许可证发布。有关更多信息,请参阅 LICENSE 文件。