Высота виджета 3D Touch - это ограничение на системном уровне. (Вы заметите, что даже Apple не переопределяет его для сторонних приложений.)
Это связано с тем, что сами меню быстрого действия могут быть довольно высокими, а высоты виджетов не ограничены. И поскольку один из возможных способов взаимодействия с меню быстрого действия перемещает ваш палец вверх/вниз от того места, где вы нажали, прокрутка, очевидно, не может быть и речи.
Что касается того, как обойти это, полностью избавившись от виджета, кажется, что iTunes Connect проверяет значение для ключа UIApplicationShortcutWidget
, чтобы убедиться, что данный идентификатор пакета действительно существует и отклоняет приложение, если он этого не делает. Ключ UIApplicationShortcutWidget
официально defined, так что если приложение имеет несколько виджетов, оно может выбрать, что показывать в контексте 3D Touch.
Пока Apple не отменяет эту политику, и я бы не задерживал дыхание, поскольку это что-то вроде случая с краем - ваши единственные обходные пути - иметь этот неосведомленный виджет или полностью пересмотреть опыт виджета.
Лично я бы рекомендовал полностью пересмотреть виджет, так как Apple рекомендует, чтобы виджеты были не просто «кнопками запуска», как вы предлагаете, даже если они имеют небольшой размер. За Human Interface Guidelines виджеты должны использоваться для «блестящей» информации или простых взаимодействий вне приложения. Есть ли другая полезная информация/функциональность, которую вы могли бы разместить в верхних 110 точках вместо кнопки запуска?
Кроме того, вы всегда можете указать file a bug, чтобы узнать, хочет ли Apple развлечь идею. Я подозреваю, что это связано с добавлением отдельного ключа Info.plist, возможно, логического, говорящего iOS о том, нужен ли виджет в этом контексте вообще.
Спасибо за это, отличный подробный ответ. Щедрость принадлежит вам, если кому-то не удастся найти отличный способ обхода. – owlswipe