Lightbox 2.5.0

Lightbox 2.5.0

测试测试
语言语言 SwiftSwift
许可证 NOASSERTION
发布最后发布2020年10月
SPM支持SPM

Vadym MarkovHyper Interaktiv ASElvis NuñezKhoa Pham维护。



Lightbox 2.5.0

Lightbox

CI Status Carthage Compatible License Platform Swift

Lightbox Icon

Lightbox是一个方便且易于使用的iOS应用程序图像查看器,集成了您期望的所有特点

  • 分页图像幻灯片。
  • 视频支持。
  • 双击缩放。
  • 图像标题。
  • 基于Hue的动态背景。
  • 基于Imaginary的远程图像加载和缓存。
  • 交互式过渡动画。
  • 强大的配置。
  • 实时演示

目录

使用

控制器

要开始播放幻灯片,请实例化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,请下载并将 SourcesImages 文件夹拖放到项目中。

作者

Hyper Interaktiv AS, [邮件地址 privy]

贡献

我们希望您能为 Lightbox 做出贡献,有关更多信息,请查阅 贡献指南

许可协议

Lightbox 使用 MIT 许可协议。有关更多信息,请查阅 许可协议文件