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地址
indicatorType
、placeholder
跟當前要預覽的圖片一致,沒有可以不用設定