【Swift】YPImagePicker を使ってみた
iOS で Photo
と Video
のいい感じのピッカーライブラリを探していたところ、YPImagePicker
というものを見つけたので使い方を紹介したいと思います🏃🏻♂️
使ってみる
今回は1~3枚の間で複数選択を有効にして、全て正方形の画像として取得できるようにしてみます。下記が実装のサンプルになります。screens
で、フォトライブラリとカメラを選択していますが、ビデオも追加したい場合は、ここに .video
を追加します。また、複数選択時に同じアスペクト比で出力できるのは正方形の場合のみなので onlySquare
で、1:1
のアスペクト比のみを許容するようにしています。画像の取得は delegate
経由ではなく、didFinishPicking
の completionHandler
で行います。
var config = YPImagePickerConfiguration() config.library.maxNumberOfItems = 3 config.library.minNumberOfItems = 1 config.screens = [.library, .photo] config.startOnScreen = .library config.showsCrop = .rectangle(ratio: 1) config.library.onlySquare = true config.library.mediaType = .photo let picker = YPImagePicker(configuration: config) navigationController?.present(picker, animated: true, completion: nil) picker.didFinishPicking {[unowned picker, self] items, cancelled in let images = items.compactMap { item -> UIImage? in switch item { case .photo(let p): return p.image default: return nil } } updateImagesAction(images) picker.dismiss(animated: true, completion: nil) }
インスタグラムのように異なるアスペクト比でも統一できる機能はいまのところないようなので、今後に期待したいですね🦅 (暇があったらコミットチャンス)
という感じで本日も以上になります。