crear como carpetas ios ios9 3dtouch uiapplicationshortcutitem

como - ¿Cómo especifico un icono personalizado para una UIApplicationShortcutItem estática en mi aplicación iOS 9?



como crear carpetas en iphone 7 (2)

Actualmente estoy implementando acciones rápidas de la pantalla de inicio para mi aplicación iOS 9 usando 3D Touch. Tengo varias acciones usando los íconos del Sistema existentes de la enumeración UIApplicationShortcutIconType definida.

Un ejemplo:

<dict> <key>UIApplicationShortcutItemIconType</key> <string>UIApplicationShortcutIconTypeSearch</string> <key>UIApplicationShortcutItemTitle</key> <string>Search for Parking</string> <key>UIApplicationShortcutItemType</key> <string>SEARCH</string> </dict>

Sin embargo, para una de las acciones quiero usar un icono personalizado. He intentado reemplazar la cadena UIApplicationShortcutItemIconType con el nombre de mi activo de imagen, pero eso no funciona.

Es bastante fácil hacer acciones dinámicas utilizando UIApplicationShortcutIcon.iconWithTemplateImageName (), pero esta acción debe ser estática.


En lugar de usar la clave UIApplicationShortcutItemIconType, reemplácela con la clave UIApplicationShortcutItemIconFile y luego ingrese el nombre de su archivo de imagen o ImageAsset.

Me gusta esto:

<dict> <key>UIApplicationShortcutItemIconFile</key> <string>MyCustomImageName</string> </dict>

El resto de las llaves pueden quedarse como estaban.


Use UIApplicationShortcutItemIconFile como clave y el nombre de su archivo de imagen (con o sin extensión de archivo) como la cadena. Por ejemplo: utilizando una imagen llamada "lightning.png" agregaría lo siguiente a Info.plist ...

<key>UIApplicationShortcutItems</key> <array> <dict> <key>UIApplicationShortcutItemIconFile</key> <string>lightning</string> <key>UIApplicationShortcutItemTitle</key> <string>Search for Parking</string> <key>UIApplicationShortcutItemType</key> <string>SEARCH</string> </dict> </array>

La imagen se puede almacenar en su árbol de proyecto o en Assets.xcassets. Si almacena la imagen en Assets.xcassets, use el nombre del conjunto de imágenes si asigna un nombre diferente al nombre del archivo.

Su archivo de imagen debe ser PNG (si desea transparencia), cuadrado, color único y 35x35 píxeles. Las imágenes multicolores esencialmente consiguen una superposición negra.

Aquí hay una imagen de prueba que cumple con los criterios anteriores:

Simplemente guarde esta imagen como "lightning.png", arrástrela al árbol de su proyecto y use el código de arriba en su archivo Info.plist.

Para aquellos que no se sienten cómodos al editar Info.plist como código fuente, aquí se muestra el aspecto anterior si lo hace de forma nativa en la Lista de propiedades:

Para adjuntar estos accesos directos al código, lo hace en el AppDelegate.swift. Agregue lo siguiente:

func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) { if shortcutItem.type == "SEARCH" { print("Shortcut item tapped: SEARCH") // go to SEARCH view controller } }

Vale la pena señalar que la convención para UIApplicationShortcutItemType no es todo mayúsculas (por ejemplo, "SEARCH"), sino que utiliza su identificador de paquete como una corrección previa:

com.myapps.shortcut-demo.search