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。