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

SnapKItをつかってコードでも簡単にAutoLayout実装

1 はじめに2 準備3 実装3.1 準備3.2 AutoLayoutを指定3.3 UIAlertControllerのカスタム4 さいごに はじめに こんにちは、nukkyです。 iOSの実装中にコー ...

swift

[Swift]通信状況を取得できるReachability.swiftを使ってみた

1 はじめに2 準備3 実装3.1 通信状況を確認する3.2 通信可能になった時に通知する4 さいごに はじめに こんにちは、nukkyです。 今回は端末の通信状況を取得できるReachability ...

swift

[Swift 3] テキストの装飾(フォント・文字サイズ・文字間隔・行間・文字色・下線)

1 はじめに2 フォント・文字サイズ変更3 文字間隔4 行間5 文字色6 下線7 さいごに8 おすすめ書籍 はじめに どうもはじめです。 今回は文字の装飾をやってみようと思います。 完成図を載せておき ...

swift

【Swift】Xcode10.3でSwift5で書かれたプロジェクトでデリゲートが呼ばれない

1 はじめに2 起きた環境3 起きる条件3.1 コード上の条件3.2 ビルド時の条件4 再現4.1 テスト用コード5 対応策6 さいごに7 おすすめ書籍 はじめに こんにちはsuzukiです。Xcod ...

swift

[Swift]動画撮影にて好きなサイズでプレビュー表示する

1 はじめに1.1 前提条件2 実装3 さいごに はじめに こんにちは、nukkyです。 今回はメインのビューの右上とかに小窓の様なプレビューにカメラの映像を出して、動画撮影するという機能を作成したの ...

フォロー

follow us in feedly

blog-page_side_responsive

2021年2月
 123456
78910111213
14151617181920
21222324252627
28 

アプリ情報

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