【Swift】类似于微博、微信的多图浏览 查看

PGImagePicker是一款用于iOS应用中的图片预览组件,支持UICollectionView复用、多种样式选择、图片操作如放大/还原、缩放、保存等功能,并允许自定义相簿。通过简单的API调用即可实现单张或多张图片的流畅预览体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、使用UICollectionView进行复用 2、内置了3种样式,有微博和微信的样式 3、双击放大/还原,单击返回,双指粘合缩放,长按保存图片到相册 4、可以自定义相薄

长按保存到相册需要在info.plist中加入以下隐私权限

<key>NSPhotoLibraryAddUsageDescription</key>
<string>App需要您的同意,才能访问相册</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能访问相册</string>
复制代码

如果相册权限被用户拒绝了,PGImagePicker已经设置好了引导用户去APP设置页面开启权限

GitHub地址

https://github.com/xiaozhuxiong121/PGImagePicker

CocoaPods安装

pod 'PGImagePicker'
复制代码

使用

let imagePicker = PGImagePicker(currentImageView: tapView, imageViews: imageViews)
present(imagePicker, animated: false, completion: nil)
复制代码

总共需要传入两个参数。第一个currentImageView当前的UIImageView,第二个参数imageViews需要浏览的所有图片的UIImageView,如果只需要浏览一张图,则参数imageViews可以省略

单张图片预览

例如点击头像预览

let imagePicker = PGImagePicker(currentImageView: tapView)
present(imagePicker, animated: false, completion: nil)
复制代码

设置相薄

长按保存到相册,可以自定义相薄,将图片保存到自己定义的相薄里面

imagePicker.albumName = "PGImagePicker"
复制代码

设置样式

pageControlType共有3种样式 样式1是当前微信的样式,样式3是当前微博的样式

let imagePicker = PGImagePicker(currentImageView: tapView, pageControlType: .type1, imageViews: imageViews)
present(imagePicker, animated: false, completion: nil)
复制代码

设置代理

得到当前正在预览的图片

imagePicker.delegate = self
func imagePicker(imagePicker: PGImagePicker, didSelectImageView imageView: UIImageView, didSelectImageViewAt index: Int) {
    print("index = ", index)
}
复制代码

加载网络图片

加载网络图片使用的是Kingfisher框架

引入pod

pod 'PGImagePickerKingfisher'
复制代码

使用

let imagePicker = PGImagePickerKingfisher(currentImageView: tapView, imageViews: imageViews)
imagePicker.imageUrls = self.imageUrls
imagePicker.indicatorType = .activity
imagePicker.placeholder = UIImage(named: "projectlist_06")
present(imagePicker, animated: false, completion: nil)
复制代码

imageUrls是图片需要加载的url地址 indicatorTypeplaceholder跟当前要预览的图片一致,没有可以不用设置

转载于:https://juejin.im/post/5a312c9451882554bd510e2c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值