BSImagePicker
- 갤러리에서 사진 선택할 때 기본적으로 한번에 사진 하나만 선택 가능하도록 되어 있지만 한번에 사진 여러개 선택 가능하도록 하기 위해 사용한다.
Cocoa Pod Install
pod 'BSImagePicker', '~> 3.1'
Xcode Example
import BSImagePicker
import Photos
let imagePicker = ImagePickerController()
imagePicker.modalPresentationStyle = .fullScreen
imagePicker.settings.selection.max = 5
imagePicker.settings.theme.selectionStyle = .numbered
imagePicker.settings.fetch.assets.supportedMediaTypes = [.image]
imagePicker.settings.theme.selectionFillColor = .white
imagePicker.doneButton.tintColor = .white
imagePicker.doneButtonTitle = "선택완료"
imagePicker.cancelButton.tintColor = .white
presentImagePicker(imagePicker, select: {
(asset) in
}, deselect: {
(asset) in
}, cancel: {
(assets) in
}, finish: {
(assets) in
self.selectedAssets.removeAll()
for i in assets {
self.selectedAssets.append(i)
}
self.convertAssetToImage()
self.collectionView.reloadData()
})
func convertAssetToImage() {
if selectedAssets.count != 0 {
for i in 0 ..< selectedAssets.count {
let imageManager = PHImageManager.default()
let option = PHImageRequestOptions()
option.isSynchronous = true
var thumbnail = UIImage()
imageManager.requestImage(for: selectedAssets[i], targetSize: CGSize(width: selectedAssets[i].pixelWidth, height: selectedAssets[i].pixelHeight), contentMode: .aspectFill, options: option) {
(result, info) in
thumbnail = result!
}
let data = thumbnail.jpegData(compressionQuality: 0.7)
let newImage = UIImage(data: data!)
self.selectedImages.append(newImage! as UIImage)
}
}
}
Values
- modalPresentationStyle : 화면에 보이는 형태
- settings.selection.max : 한번에 선택 가능한 아이템 최대 개수
- settings.theme.selectionStyle : 아이템 선택했을 때 보이는 형태 (.checked / .numbered)
- settings.fetch.assets.supportedMediaTypes : 선택 가능한 아이템 파일 형식 (.image / .video)
- settings.theme.selectionFillColor : 선택한 사진에 칠할 색
- doneButton.tintColor : 선택 완료 버튼 글씨 색
- doneButtonTitle : 선택 완료 버튼 내용, 기본값은 "Done"
- cancelButton.tintColor : 취소 버튼 글씨 색