【Swift/UIKit】ActionSheetPicker_3_0の使い方!ピッカーシートを簡単に実装

この記事からわかること
- Swift/UIKitでActionSheetPicker_3_0ライブラリの使い方
- ピッカーシートを実装する方法
- ActionSheetStringPicker、ActionSheetDatePicker、ActionSheetMultipleStringPicker
\ アプリをリリースしました /
環境
- Xcode:14.3.1
- iOS:17.0
- Swift:5.8.1
- UIKit
ActionSheetPicker_3_0とは?
公式リファレンス:ActionSheetPicker_3_0
ActionSheetPicker_3_0はSwift/Objective-Cで使用できるピッカーシートを実装できるライブラリです。ActionSheetPickerではUIPickerView + UIActionSheetを使ってピッカーシートを定義しており、開発者は表示させたいデータや完了時の処理などを渡すだけで簡単に実装することが可能になっています。
導入方法
ActionSheetPicker_3_0ではCarthage/Swift Package Manager/Cocoa Podsで導入可能になっています。Cocoa Podsではpod 'ActionSheetPicker-3.0'
を追加してpod install
を実行します。
使用する際にはimport文を忘れずに追加しておきます。
導入完了後に最新のXcodeでビルドを試みるとFile not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a
というエラーが発生します。これはMinimum Deploymentsが低いことが原因なのでCocoa PodsのActionSheetPickerのMinimum Deploymentsを11.0
などにあげることで解消します。

ピッカーシートの実装方法
シンプルなピッカーを実装するにはActionSheetStringPicker
を使用します。静的メソッドのshow
メソッドの引数にタイトルやピッカー対象の値などを渡します。ピッカー対象の値は配列形式で渡せば文字列でも数値でもOKです。
ボタンのアクションの中に上記のように仕込めばボタンタップ時に以下のように下からピッカーシートが表示されるようになります。

完了ボタン押下時の処理を実装する
完了ボタン押下時の処理を実装したい場合はActionSheetStringPicker
の場合はActionStringDoneBlock
型のクロージャを定義します。引数から対象のピッカーと値、インデックスを取得することが可能です。
日付ピッカーを実装する
日付ピッカーを実装するにはActionSheetDatePicker
を使用します。静的メソッドのshow
を使用せずともインスタンスを作成してからshow
メソッドで表示させることも可能です。これは日付ピッカーだからではなく全てに該当します。

マルチピッカーを実装する
単体のピッカーではなく複数の値を選択できるマルチピッカーを実装するにはActionSheetMultipleStringPicker
を使用します。引数のrows
には入れ子になった配列を渡すことが可能になり、initialSelection
には入れ子になっている分の初期値を渡します。
完了ブロック内で受け取れる値values
などを配列で値が格納されるようになります。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。