1,2,3…や10,20,30…といった、似たような項目を選択させるアクションを多少スッキリさせます.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS16.0.2
スポンサーリンク
普通のやり方
普通に作るなら、画像のように「リスト」アクションに具体的に追加していき、「リストから選択」で好きな項目を選ばせます.
ただしこのやり方だと項目が増えると追加する作業が面倒ですし「リスト」アクション自体が大きくなって見辛いです.
「繰り返し」を使う
そこで「リスト」アクションの代わりに「繰り返し」アクションを使います.
「繰り返し」アクションではインデックスの変数が存在するため、単純に1から始まる数をリストするだけであればこれを他の変数に追加していき、その変数に対して「リストから選択」で選ばせればよいです.
項目数が少なければ気になりませんが、多くなるにつれ繰り返し処理によるもたつきが顕著になるデメリットがあります.
応用1:計算式アクションやテキストアクションを使う
リストに入れることができるのは何も数だけではないですから、繰り返し処理内で好きに弄って、それを変数に追加して選択させても良いことになります.
(画像の「計算式」の数式は適当に書いたものです)
うまく作ることで、「繰り返し」の中身をテンプレートとする項目を、項目数だけを弄るだけで好きな数の選択肢を作ることができます.
応用2:項目とそのインデックスも取得する
上のやり方ではインデックス(順番)以外の選択肢となったため、選んだ項目が何番目なのかはわかりません.
そこで選択した項目とそのインデックスも取得できるよう作り変えてみます.
まず空の「辞書」アクションを追加し、適当な名前の変数で置きます.
この2つのアクション(画像で赤く囲んだ部分)は完成後削除しても問題ありません.
続いて好きな数だけ繰り返すのですが、その際「辞書の値を設定」でキーに項目となる内容(今回はインデックスを2乗した結果)、値に繰り返しのインデックスを当てます.
この結果を「変数を設定」で最初に作った辞書に相当する変数に上書きします.
最後に辞書のキーに対して「リストから選択」でひとつ選ばせ、その結果と対応する値(インデックス)を表示します.
「ファイルにフィルタを適用」を行っているのは、一度辞書にすることで組の順番が崩れるからです(ショートカットの仕様らしいです).
どのみちアルファベット順などにしたほうが何かと都合の良いことが多いでしょう.
こうして繰り返し内で作った内容を選択肢として選び・・・
選択した結果とそのインデックスが取得できました.
応用3:指定間隔の時間を選択する
iOS16ではドラムロール式が復活しましたが、また仕様が変わる可能性は否定できません.
とはいえドラムロール式はサッと操作したいときにピンポイントで止めるのが地味に難しい場合があります、かといって手打ちは面倒です.
例えば画像のレシピでは、内部処理用の変数tmpの初期値を現在の時刻とし、繰り返し処理内でその時刻を別の変数timeに追加、そのご変数tmpを5分加算する処理を行っています.
これで変数timeには実行時点の時刻から5分おき、5つ分の時刻の配列となっています(なお追加時に日付フォーマットをなしにしています).
この変数timeに対して「リストから選択」を実行することで、実行時を含め5分間隔の時刻を選択できるようになります.
あとは変数tmpの時間加算を好みで弄るだけです.
〆
「リスト」アクションでの強みは「見てすぐに分かる」ということです.
今回のやり方は内容次第ではパッと見て分かりづらいこともありますが、応用3のように実行するたびに起点となる項目が変わる場合はそれを補ってなおこの方法がベターであることを実感させてくれます.
どちらもメリットありデメリットありです、状況に応じて今回のアイデアを使ってみてください.