Lightbox
Lightbox是一个方便且易于使用的iOS应用程序图像查看器,集成了您期望的所有特点
目录
使用
控制器
要开始播放幻灯片,请实例化LightboxController
,设置所需代理并呈现它
// Create an array of images.
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: "This is an example of a remote image loaded from 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: "This is an example of a local image."
)
]
// Create an instance of LightboxController.
let controller = LightboxController(images: images)
// Set delegates.
controller.pageDelegate = self
controller.dismissalDelegate = self
// Use dynamic background.
controller.dynamicBackground = true
// Present your controller.
present(controller, animated: true, completion: nil)
代理
如果需要通知页面导航更改,请使用LightboxControllerPageDelegate
。
extension ViewController: LightboxControllerPageDelegate {
func lightboxController(_ controller: LightboxController, didMoveToPage page: Int) {
print(page)
}
}
要通知当控制器即将被 dismissing 时,请使用LightboxControllerDismissalDelegate
。请注意,如果LightboxController
最初被 presented,则它将自行 dismiss。
extension ViewController: LightboxControllerDismissalDelegate: class {
func lightboxControllerWillDismiss(_ controller: LightboxController) {
// ...
}
}
图像加载
默认情况下,图像使用Imaginary可靠地加载和缓存。但很容易通过LightboxConfig更改此行为
LightboxConfig.loadImage = {
imageView, URL, completion in
// Custom image loading
}
视频
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
// Custom video handling
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 = "Finish"
LightboxConfig.DeleteButton.image = UIImage(named: ImageList.Lightbox.deleteButton)
LightboxConfig.DeleteButton.textAttributes = TextAttributes.Lightbox.deleteButton
LightboxConfig.DeleteButton.text = "Delete"
LightboxConfig.InfoLabel.ellipsisText = "Show more"
安装
Lightbox适用于通过CocoaPods。要安装,请简单地将以下行添加到您的 Podfile 中。
pod 'Lightbox'
要快速尝试 Lightbox 的示例项目,请在终端中运行 pod try Lightbox
Lightbox 也适用于通过 Carthage。要安装,只需在您的 Cartfile 中写入内容。
github "hyperoslo/Lightbox"
要手动安装 Lightbox,请下载并将 Sources
和 Images
文件夹拖放到项目中。
作者
Hyper Interaktiv AS, [邮件地址 privy]
贡献
我们希望您能为 Lightbox 做出贡献,有关更多信息,请查阅 贡献指南。
许可协议
Lightbox 使用 MIT 许可协议。有关更多信息,请查阅 许可协议文件。