Lightbox
Lightbox 是一个方便且易于使用的 iOS 应用程序图像查看器。已更新至 Swift 5.0。归功于原始开发者 Hyper Interaktiv AS。
- 分页图像幻灯片。
- 视频支持。
- 双击缩放。
- 图像标题。
- 基于 Hue 的动态背景。
- 基于 AlamofireImage 的远程图像加载和缓存。
- 交互式过渡动画。
- 强大的配置。
- 支持 Swift 5.0。
- 图像删除支持。
- 实时演示
目录
使用
控制器
要开始您的幻灯片,请实例化 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)
}
}
使用 LightboxControllerDismissalDelegate
来接收当控制器即将被关闭的通知。请注意,如果 LightboxController
是首次呈现的,它将自动关闭自己。
extension ViewController: LightboxControllerDismissalDelegate: class {
func lightboxControllerWillDismiss(_ controller: LightboxController) {
// ...
}
}
图片加载
默认情况下,使用 AlamofireImage 加载图片以保证可靠性和缓存。但您可以通过 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 'LightboxV2'
手动安装 Lightbox,只需下载并将 Sources
和 Images
文件夹拖放到您的项目中。
作者
Hyper Interaktiv AS, [email protected], Isuru Ranasinghe ,[email protected]
贡献
我们希望您能为《Lightbox》做出贡献,有关详细信息,请参阅贡献指南文件。
许可协议
Lightbox 以MIT许可协议提供。有关详细信息,请参阅许可协议文件。