WEImageViewer 1.0.1

WEImageViewer 1.0.1

GiangVT维护。



 
依赖项
FLAnimatedImage>= 0
PINRemoteImage>= 0
 

  • 作者
  • GiangVT

WEImageViewer

CI Status Version License Platform

描述

目录

  1. 示例
  2. 安装
  3. 支持版本
  4. 使用
  5. 属性
  6. 公开接口
  7. 许可证
  8. 联系方式

示例

要运行示例项目,首先克隆仓库,然后从 Example 目录中运行 pod install

安装

  • 通过 CocoaPods 安装 WEImageViewer,请通过 CocoaPods。要安装,只需将以下行添加到您的 Podfile 中。
pod 'WEImageViewer'

Supported Versions

  • iOS 10.0 或更高版本

使用方法

UIImageView

imageView.enableViewer(true, presentViewController: self.navigationController)
// Or
imageView.enableViewer(true) // Viewer will be presented by UIApplication.share.keyWindows.rootViewController
// Or
let imageBrowser = WEImageViewController()
imageBrowser.show(self.navigationController, senderView: imageView)

UITableViewController, UICollectionViewController

步骤 1. 将查看器声明为属性

let imageViewer = WEImageViewController()

步骤 2. 在表格视图代理方法 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) 中,为单元格的图像视图设置图像查看器控制器

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! DemoCollectionViewCell
    // Configure the cell
    cell.coverImageView.imageViewerController = imageViewer
    cell.coverImageView.enableViewer(true)
    return cell
}

步骤 3. 采纳 WEImageViewerDataSource 和 WEImageViewerDelegate

func numberOfImageInViewer() -> Int {
    return objects.count
}

func imageViewAtIndex(_ imageViewer: WEImageViewController, index: Int) -> UIImageView? {
    let indexPath = IndexPath(row: index, section: 0)
    if let cell = tableView.cellForRow(at: indexPath) {
        return cell.contentView.viewWithTag(101) as? UIImageView
    }
    return nil
}

func frameInWindowForItemAtIndex(_ imageViewer: WEImageViewController, index: Int) -> CGRect {
    let indexPath = IndexPath(row: index, section: 0)
    let rect = tableView.rectForRow(at: indexPath)
    return tableView.convert(rect, to: nil)
}

// Scroll to the cell has an image will be showing on viewer to make sure the dismissal animation will work correctly when user close viewer
func imageViewer(_ imageViewer: WEImageViewController, willShowAt index: Int) {
    //This is my sample code, you can do some more to make it better
    let indexPath = IndexPath(row: index, section: 0)
    if let visibleIndexes = tableView.indexPathsForVisibleRows, !visibleIndexes.contains(indexPath) {
        tableView.scrollToRow(at: indexPath, at: .middle, animated: false)
    }
}

属性

绘制属性 描述
imagesDataSource WEImageViewerDataSource 数据源为图像查看器控制器对象提供构建和修改查看器所需的信息。
delegate WEImageViewerDelegate 代表必须采用 WEImageViewerDelegate 协议。协议的某些可选方法允许代表在查看器控制器中管理一些操作。
rootViewController UIViewController 此控制器将呈现图像查看器控制器。如果 rootViewController 为 nil,查看器将通过 keyWindow 呈现。
selectedIndex Int 查看器中当前显示的图像的索引。

公共接口

WEImageViewerDataSource

func numberOfImageInViewer() -> Int
func imageViewAtIndex(_ imageViewer: WEImageViewController, index: Int) -> UIImageView?
func frameInWindowForItemAtIndex(_ imageViewer: WEImageViewController, index: Int) -> CGRect
optional func imageURLAtIndex(_ imageViewer: WEImageViewController, index: Int) -> URL?

WEImageViewerDelegate

optional func imageViewer(_ imageViewer: WEImageViewController , willShowAt index: Int)

联系方式

您可以通过电子邮件地址 [email protected] 联系我。如果您在项目中发现任何问题,请创建一个工单。同时也欢迎提交拉取请求。

授权协议

由 GiangVT(又名 Werfe)开发,并以 MIT 协议发布。关于更多详细信息,请参阅 LICENSE 文件。

在我的示例项目中,背景图像来自 ilikewallpaperPinterest。谢谢。