【Swift】類似於微博、微信的多圖瀏覽 檢視

小豬熊發表於2017-12-13

PGImagePicker.gif

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

相關文章