iOS

【Swift】QuickActionを動的に変更する

投稿日:2021年2月15日 更新日:

はじめに

こんにちはsuzukiです。前回に続き、SwiftのQuickActionについて触れて行きます。 前回はQuickActionで固定のパラメーターを送るように設定しましたが、アプリの内部の情報によってQuickActionの内容を、動的に設定する方法について説明して行きます。

動的なショートカットの追加

動的なショートカットで何ができるかというと例えば天気アプリのように、上二つの地域を表示することができます。


この機能を利用すれば固定のショートカットに比べ、
通話回数の一番多い人に電話をかける画面を表示するのような、ユーザーの行動に即したショートカットを設定することが可能です。。
前回説明が漏れてしまっていたのですが、設定できるショートカットの上限は4つとなります。限られた枠をどう使うのかもよく考えた方がいいですね。

実装

実装自体は非常に簡単です。UIMutableApplicationShortcutItemというクラスを作成し、設定するだけです。

UIMutableApplicationShortcutItem

InfoPlistで固定のショートカットとほぼ同じで、下記のプロパティが用意されています。

  • var type: String:タイプの指定(必須)
  • var icon: UIApplicationShortcutIcon?:ホーム長押しで表示されるアイコンの指定
  • var localizedTitle: String:ホーム長押しで表示されるタイトルの設定(必須)
  • localizedSubtitle: String?:ホーム長押しで表示されるサブタイトルの設定
  • var userInfo: [String : NSSecureCoding]?:タップ時に受け取る情報を設定可能

実際に使う場合だとこんな感じです。

実行すると、下記のようになります。

動的にショートカットを設定する

試しにABCのボタンを作成し、最も多く推されているボタンに対するショートカットを設定するというコードを書いてみました。実際に使う際は、一応intのオーバーフローの際の動作とかを定義する必要があるかなと思っております。

ボタンをタップした際の動作

一番タップされているボタンの取得

アプリがバックグラウンドに遷移した際にショートカットの更新

さいごに

今携わっているアプリでは、QuickActionを使って設定したい機能がいくつかあります。ただショートカット機能が、あまり認知されていないので、アプリ内で機能紹介しようかと思っております。ユーザビリティを少しでも上げる一手になればいいのかなと思っております。

おすすめ書籍

[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 WEB+DB PRESS plus 詳解 Swift 第4版 [改訂新版]Swiftポケットリファレンス (POCKET REFERENCE)

blog-page_footer_336




blog-page_footer_336




-iOS
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

swift

Swift3でRealmを使ってみる

1 はじめに1.1 前提条件2 事前準備2.1 Realmのインストール・設定2.1.1 Carthageファイルの生成2.1.2 CarhageにてRealmをインストール2.1.3 Realmをイ ...

iOS13で発生するUICollectionviewのカクつきを解消する

iOS13でCollectionViewの動作が少し変わりました。 Cellの入れ替え時にデータの更新を行う際にはどのように作成すれば良いか、関係のあるデリゲートを含め説明させていただいております。 おまけとして、Xcode11.3対応を行った際に対応した内容を簡単にですが記述しております。Xcode11対応をされる方の参考になればと思います。

swift

iOSで画像の任意の場所をぼかし処理する方法

1 はじめに1.1 前提条件2 準備3 実装3.1 ぼかし処理のイメージ画像3.2 サンプルコード4 さいごに はじめに iOSで写真の任意の場所にぼかし処理をしたいケースがありましたので、 iOSで ...

[Swift]忘れられがちなSFSafariViewControllerについて

1 はじめに1.1 前提条件2 SFSafariViewControllerとは2.1 SFSafariViewControllerの特徴2.2 iOS11からのCookie同期について3 SFSaf ...

swift

【Swift】Full Keyboard Accessが有効な際にボタンの動作が行われない。

1 はじめに2 フルキーボードアクセス3 今回の問題4 対応方法5 再現アプリ5.1 ViewController5.2 ChildView6 動かしてみた7 さいごに8 おすすめ書籍 はじめに こん ...

フォロー

blog-page_side_responsive

2021年2月
 123456
78910111213
14151617181920
21222324252627
28  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。