LBJImagePreviewer 是一个在 SwiftUI 框架下实现的图片预览器。
- 手势缩放和滚动
- 双击放大缩小
- 支持 gif 动态图
使用 Swift Package Manager 安装:
- 复制库的路径
https://github.com/Lebron1992/LBJImagePreviewer
- 在 Xcode 中打开菜单
File / Add Packages - 把路径粘贴到搜索框,根据提示把库添加到项目中
预览 UIImage:
let uiImage = UIImage(named: "lebron")! LBJUIImagePreviewer(uiImage: uiImage)
预览 Image:
// 需要传入 `Image` 的宽高比 LBJImagePreviewer(content: Image(uiImage: uiImage), aspectRatio: 2 / 3)
预览 Gif 动态图:
LBJGIFImagePreviewer(imageNamed: "lebron") if let url = Bundle.main.url(forResource: "lebron", withExtension: "gif"), let data = try? Data(contentsOf: url) { LBJGIFImagePreviewer(imageData: data) }
如果你不是直接通过 UIImage 或者 Image 来显示图片,你可以预览任意 View。例如预览一个红色背景:
LBJViewZoomer<Color>(content: .red, aspectRatio: 1)
指定当用户双击图片时的放大倍数,默认是 3:
LBJUIImagePreviewer(uiImage: uiImage, doubleTapScale: 5) LBJImagePreviewer(content: Image(uiImage: uiImage), aspectRatio: 2 / 3, doubleTapScale: 5)
指定最大放大倍数,默认是 16:
LBJUIImagePreviewer(uiImage: uiImage, maxScale: 20) LBJImagePreviewer(content: Image(uiImage: uiImage), aspectRatio: 2 / 3, maxScale: 20)
设置消失时是否重置倍数,默认是 true:
LBJUIImagePreviewer(uiImage: uiImage, maxScale: 20) .resetScaleOnDisappear(true) LBJImagePreviewer(content: Image(uiImage: uiImage), aspectRatio: 2 / 3, maxScale: 20) .resetScaleOnDisappear(false)
- 双击放大时,图片只能从中间位置放大,无法在点击位置放大。(目前
ScrollView无法手动设置contentOffset,等待ScrollView更新以解决这个问题。)
请使用 GitHub issues。