anz blog

3D Touch Shortcuts のメニューの並びについて

2019-01-29 #Swift

ざっくりまとめ。

  • 3D Touch Shortcuts 実装した
  • 表示されるメニューの並びがかわる?
  • 対象のアプリアイコンが上半分か下半分どっちにあるかでかわる
    • plist で指定した順に上からという並びではないみたい

です。

環境

  • Xcode v10.1
  • Swift 4.2

表示されるメニューの並びが違う?

3D Touch による起動ショートカットを実装したときに気になったのだけれど
表示されるメニューの並びが端末によってちがう?
(最初は実機とシミュレータでちがう?とも思ったりもしました)

info.plist

<key>UIApplicationShortcutItems</key>
<array>
    <dict>
        <key>UIApplicationShortcutItemType</key>
        <string>xyz.factory.shortcut.add</string>
        <key>UIApplicationShortcutItemTitle</key>
        <string>Add</string>
        <key>UIApplicationShortcutItemIconType</key>
        <string>UIApplicationShortcutIconTypeAdd</string>
    </dict>
    <dict>
        <key>UIApplicationShortcutItemType</key>
        <string>xyz.factory.shortcut.search</string>
        <key>UIApplicationShortcutItemTitle</key>
        <string>Search</string>
        <key>UIApplicationShortcutItemIconType</key>
        <string>UIApplicationShortcutIconTypeSearch</string>
    </dict>
</array>

こういう感じで設定していて、上から Add, Search と記述しているので、
表示されるメニューもその並びでくるとおもっていたのだけれど...。

shortcut menu

これは想定している通りだけれど

shortcut menu

これは違う。
当初は実機とシミュレータで確認して差異があったので、
まさか実機とシミュレータで挙動が違うやつかな?とか思ったりもしました。

多分対象アプリのアイコンがどこに有るかが重要

画面の上半分に対象アプリのアイコンがあるのか、下半分にあるのか...
多分それで表示されるメニューの並びが違うっぽいです。

info.plist で指定した並び順になるにはなるけど、
アプリアイコンがどこにあるかで、始点がかわるような感じでしょうか。

上から下に並ぶ時は上半分にあるとき。
下から上に並ぶときは下半分んいあるとき。
ということっぽいです。
アプリアイコンからメニューの端へと並ぶっていう感じでしょうか。。

これに遭遇したときは、まったくしらなかったので、
端末によって違うのかとか、まさかのランダム!?とか思ったりもしてちょっと焦りました(笑)