it-swarm.com.ru

Имитация силы касания / 3D касания на симуляторах iPhone 6S или iPhone 6S Plus

Я пытаюсь смоделировать принудительное касание с помощью Xcode 7 GM на имитаторе iPhone 6S или iPhone 6S Plus. В частности, я пытаюсь смоделировать принудительное прикосновение к значку тестового приложения, которое реализует ярлыки приложений.

Дайте мне знать, если есть решение для симуляции этого, я попробовал долгое нажатие, которое имитатор часов использует для симуляции силового прикосновения, не сработало, поскольку iPhone фиксирует его как длинный жест.

Обновление: я загрузил образец кода ViewControllerPreview от Apple. Запустив их пример приложения, я вижу, что симулятор, хотя iPhone 6s, не поддерживает функцию 3D/Force Touch. Я все еще не уверен, поддержит ли она эту функцию, если я буду использовать macbook с трекпадом с принудительным касанием.

enter image description here

Правка: Может ли кто-нибудь с macbook, у которого есть трекпад с принудительным касанием, попытаться использовать принудительное касание на трекпаде для симуляции 3D касания на симуляторе iPhone 6s или 6s Plus? Моя теория заключается в том, что вы можете использовать трекпад Force Touch на новых MacBook для имитации 3D-касания на новых симуляторах iPhone. Добавьте комментарий, отметив результаты, если вы попробуете это, и я могу обновить пост.

Правка 2: Кажется, что трекпад Force Touch на новой модели MacBook Pro не помогают.

98
Kris Gellci

Это говорит здесь ! внизу страницы....

Среда разработки

Xcode 7 поддерживает разработку 3D Touch. Все функции отладки Xcode доступны для реализации новых функций.

Имейте в виду следующее:

С Xcode 7.0 вы должны разрабатывать на устройстве, которое поддерживает 3D Touch. Симулятор в Xcode 7.0 не поддерживает 3D Touch.

С Xcode 7.0 вы должны внедрить свои контроллеры просмотра и просмотра в коде. Интерфейсный Разработчик в Xcode 7.0 не обеспечивает графическую поддержку для настройки контроллеров представления или переходов для 3D Touch.

Обязательно протестируйте свое приложение с включенным и отключенным режимом 3D Touch, убедившись в том, что все функции доступны всем пользователям. На устройстве 3D Touch вы можете отключить 3D Touch в меню "Настройки"> "Основные"> "Специальные возможности"> "3D Touch".

Так что, к сожалению, похоже, что нам нужно заполучить фактические устройства, чтобы сделать это. :-(

Правка.....

Начиная с Xcode 7.3 есть способ сделать это, если трекпад вашего MacBook поддерживает принудительное касание. Смотрите ответ @iPrabu.

74
kaylanx

Для тех, кто разрабатывает Quick Actions (ярлыки приложений), вы можете использовать этот скрипт, который позволяет имитировать глубокое нажатие на приложение на симуляторе.

https://github.com/DeskConnect/SBShortcutMenuSimulator

Вот скриншот: enter image description here

Для тех, кто смотрит, как добавить действия на первое место, есть два варианта: статический и динамический. Вы можете установить только 4 параметра, сначала будут показаны все статические, а если есть место, показать динамические.

Вот как можно добавить статические ярлыки. Это довольно просто, просто добавьте несколько ключей на основной Info.plist

В этом примере я добавлю два статических параметра: один со значком поиска по умолчанию, а другой - с пользовательским значком из каталога активов.

<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 Touch в симуляторе, но только с одним ограничением. (ссылка на заметки о выпуске Xcode7.3)

Разрабатываемый вами компьютер (MacBook/Mac с трекпадом) должен иметь функцию 3D Touch.

Вы можете найти его в меню Симулятор iOS.

Комментарии Павла Алексеева: Обязательно включите "Force Click и тактильный отзыв" в Системных настройках → Трекпад

enter image description here

42
iPrabu

Принудительное давление в iOS (например, Peek & Pop) не проявляется ни в Xcode 7.0, ни в Xcode 7.1 Beta's Simulator. Опции касания нажатия актуальны только для устройств watchOS в этих версиях Simulator. Если у вас есть бета-версия Xcode 7.1, вы заметите, что опция меню фактически отключена.

С Xcode 7.3 и iOS 9.3 и более поздними версиями симуляторов вы можете протестировать функциональность peek/pop с помощью сенсорной сенсорной панели.

9
Jeremy Huddleston Sequoia

Вы можете включить 3D Touch в симуляторе. Благодаря это библиотека.

  • После его добавления Используя комбинацию команды, клавиш управления и сдвига , можно включить 3D Touch.

  • Не забудьте добавить библиотеку только в Debug . Исключите его из среды Release .

9
sanky009

Для касания "Быстрые действия на главном экране" я сделал следующее:

  • создал объект UIMutableApplicationShortcutItem

  • поместите его в launchOptions для UIApplicationLaunchOptionsShortcutItemKey

  • и это все

Похоже, пользователь сделал 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

(приложение: didFinishLaunchingWithOptions:)

2
Andrew

Здесь есть немного кода, который позволяет вам тестировать 3D Touch Peek & Pop в симуляторе. Имейте в виду, что это код для iOS 9.0, и некоторые из внутренних/частных методов изменились в 9.1, поэтому вам нужно будет внести несколько незначительных изменений (Подсказка: слово "Позиция" изменено на "Местоположение" в одном из имен методов) .

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

И это, и https://github.com/DeskConnect/SBShortcutMenuSimulator , упомянутые в других ответах, позволяют достаточно компетентно тестировать 3D Touch без реального устройства.

2
Jordan Smith

Официально Xcode 7.1 поддерживает 3D Touch, но не на симуляторе. Вам нужно иметь фактическое устройство для тестирования. Проверьте последний абзац документация от Apple.

Apple Document

3D touch not supported on simulator

Тем не менее, вы можете использовать сторонние инструменты для тестирования на симуляторе, например, выделенные Nicolas S выше.

1
Jayprakash Dubey

Более новые macbooks имеют сенсорную панель с принудительным касанием. Я думаю, что эти варианты будут работать только в этом.

0
atulkhatri

У меня это работало с симулятором XCode 9 и iphone 8. В вашем Mac перейдите в настройки системы -> Трекпад -> Включить Принудительный щелчок и тактильный отзыв .

enter image description here

Затем нажмите на любую часть симулятора iphone, чтобы выполнить принудительное касание.

0
karthik