web-dev-qa-db-ja.com

iPhone 6SまたはiPhone 6S Plusシミュレーターでフォースタッチ/ 3Dタッチをシミュレート

IPhone 6SまたはiPhone 6S PlusシミュレーターでXcode 7 GMを使用して強制タッチをシミュレートしようとしています。特に、アプリケーションショートカットを実装しているテストアプリのアイコンの強制タッチをシミュレートしようとしています。

これをシミュレートする解決策があるかどうかを教えてください、私はウォッチシミュレーターがフォースタッチをシミュレートするために使用する長押しを試みましたが、iPhoneはそれを長押しジェスチャーとしてキャプチャするため、動作しませんでした。

更新:AppleからViewControllerPreviewサンプルコードをダウンロードしました。サンプルアプリケーションを実行すると、iPhone 6sのシミュレーターでは3D /強制タッチ機能がサポートされないことがわかります。強制タッチ対応のトラックパッドを備えたMacbookを使用する場合、この機能がサポートされるかどうかはまだわかりません。

enter image description here

編集:フォースタッチトラックパッドを持つMacbookを持っている人は、トラックパッドのフォースタッチを使用してiPhone 6sまたは6s Plusシミュレーターの3Dタッチをシミュレートできますか?私の理論では、新しいMacBookのフォースタッチトラックパッドを使用して、新しいiPhoneシミュレーターの3Dタッチをシミュレートすることができます。あなたがそれを試してみて、私が投稿を更新できるならば、結果に注意するコメントを追加してください。

EDIT2:新しいモデルのMacbook ProのForce Touchトラックパッドは役に立たないようです。

98
Kris Gellci

こちら !ページの下部に...

開発環境

Xcode 7は3D Touch開発をサポートしています。 Xcodeのすべてのデバッグ機能は、新しい機能の実装に使用できます。

次のことに注意してください。

Xcode 7.0では、3D Touchをサポートするデバイスで開発する必要があります。 Xcode 7.0のシミュレーターは3D Touchをサポートしていません。

Xcode 7.0では、コード内にピークビューコントローラーとポップビューコントローラーを実装する必要があります。 Xcode 7.0のInterface Builderは、3D TouchのView Controllerまたはトランジションを構成するためのグラフィカルサポートを提供しません。

3D Touchを有効または無効にしてアプリをテストし、すべてのユーザーがすべての機能を使用できることを確認してください。 3D Touchデバイスでは、[設定]> [全般]> [アクセシビリティ]> [3D Touch]で3D Touchを無効にできます。

残念ながら、実際のデバイスを実際に操作する必要があるようです。 :-(

編集.....

Xcode 7.3では、MacBookのトラックパッドが強制タッチをサポートしている場合、これを行う方法があります。 @iPrabuによる回答を参照してください。

74
kaylanx

クイックアクション(アプリのショートカット)を開発している場合は、このスクリプトを使用して、シミュレーターでアプリを深く押してシミュレートできます。

https://github.com/DeskConnect/SBShortcutMenuSimulator

これがスクリーンショットです: enter image description here

そもそもアクションを追加する方法を検討している人には、静的と動的の2つのオプションがあります。設定できるオプションは4つだけです。最初にすべての静的オプションが表示され、スペースがある場合は動的オプションが表示されます。

静的ショートカットを追加する方法は次のとおりです。メインのInfo.plistにいくつかのキーを追加するだけです。

この例では、2つの静的オプションを追加します。1つはデフォルトの検索アイコンで、もう1つは資産カタログのカスタムアイコンです。

<key>UIApplicationShortcutItems</key>
<array>
    <dict>
        <key>UIApplicationShortcutItemTitle</key>
        <string>Add Event (with custom icon)</string>
        <key>UIApplicationShortcutItemType</key>
        <string>com.reverse.appname.addevent</string>
        <key>UIApplicationShortcutItemIconFile</key>
        <string>custom-icon-from-asset-catalog</string>
        <key>UIApplicationShortcutItemSubtitle</key>
        <string>Here you can add some text below the option</string>
    </dict>
    <dict>
        <key>UIApplicationShortcutItemTitle</key>
        <string>Search Event (with default icon)</string>
        <key>UIApplicationShortcutItemType</key>
        <string>com.reverse.appname.searchevents</string>
        <key>UIApplicationShortcutItemIconType</key>
        <string>UIApplicationShortcutIconTypeSearch</string>
        <key>UIApplicationShortcutItemSubtitle</key>
        <string>Here you can add some text below the option</string>
    </dict>
</array>
64
Nicolas S

Xcode 7.3を使用すると、シミュレータで3Dタッチ機能をテストできますが、制約は1つだけです。 (Xcode7.3リリースノートリファレンス)

開発中のマシン(macbook/mac with trackpad)は、3Dタッチ機能を備えている必要があります。

IOSシミュレーターの[ハードウェア]メニューにあります。

Pavel Alexeevからのコメント:「システム環境設定」→「トラックパッド」で「強制クリックと触覚フィードバック」を有効にしてください

enter image description here

42
iPrabu

IOSの強制圧力(例:Peek&Pop)は、Xcode 7.0またはXcode 7.1 Betaのシミュレーターでは公開されません。圧力タッチオプションは、シミュレータのこれらのバージョンのwatchOSデバイスにのみ関連します。 Xcode 7.1ベータ版をお持ちの場合は、メニューオプションが実際に無効になっていることに気付くでしょう。

Xcode 7.3およびiOS 9.3以降のシミュレーターランタイムでは、強制タッチトラックパッドを使用してピーク/ポップ機能をテストできます。

シミュレーターで3D Touchを有効にできます。 this ライブラリに感謝します。

  • 追加後コマンド、control、shiftキーの組み合わせを使用して、3D Touchを有効にすることができます。

  • Debug環境のみでライブラリを追加することを忘れないでください。 Release環境から除外します。

9
sanky009

[ホーム画面のクイックアクション]タッチについて、次のことを行いました。

  • uIMutableApplicationShortcutItemのオブジェクトを作成しました

  • UIApplicationLaunchOptionsShortcutItemKeyのlaunchOptionsに入れます

  • 以上です

ユーザーがアプリのアイコンを3dタッチしたようです。

    let shortcut = UIMutableApplicationShortcutItem(type: ShortcutIdentifier.Third.type,
        localizedTitle: "Title",
        localizedSubtitle: "Subtitle",
        icon: UIApplicationShortcutIcon(type: .Play), userInfo: [
        AppDelegate.applicationShortcutUserInfoIconKey: UIApplicationShortcutIconType.Play.rawValue
        ]
    )

    let launchOption = [
        "UIApplicationLaunchOptionsShortcutItemKey" : shortcut
    ]

    launchOptions = launchOption

(application:didFinishLaunchingWithOptions:)

2
Andrew

ここには、シミュレータで3D Touchのピークとポップをテストできるコードが少しあります。これはiOS 9.0のコードであり、9.1では内部/プライベートメソッドの一部が変更されているため、いくつかの小さな変更を行う必要があることに注意してください(ヒント:Word 'Position'メソッド名のいずれかで「場所」に変更されました)

https://Gist.github.com/nickfrey/07e2c6d8d2e5444fb91d

これと https://github.com/DeskConnect/SBShortcutMenuSimulator の両方で、他の回答で言及されているように、実際のデバイスなしで3D Touchをかなり有能にテストできます。

2
Jordan Smith

公式には、Xcode 7.1は3Dタッチをサポートしていますが、シミュレーターではサポートしていません。テストするには、実際のデバイスが必要です。 Appleの documentation の最後の段落を確認してください。

Apple Document

3D touch not supported on simulator

ただし、上記の Nicolas S で強調表示されているようなサードパーティのツールを使用して、シミュレータでテストすることができます。

1

新しいMacbookは、強制タッチ対応のタッチパッドを備えています。これらのオプションはその中でのみ機能すると思います。

0
atulkhatri

XCode 9とiphone 8シミュレーターでうまく機能しました。 Macでシステム設定->トラックパッド->有効に移動し、強制クリックと触覚フィードバックを実行します。

enter image description here

次に、iPhoneシミュレーターの任意の部分をしっかり押して、強制タッチアクションを実行します。

0
karthik