Formato de text de UILocalNotification.alertBody

Estoy buscando una forma de dar formatting al text de alertBody of UILocalNotification . Noté que, por ejemplo, la aplicación de correo establece la primera línea de Asunto y la segunda y tercera línea son una vista previa del cuerpo del correo electrónico. Si el sujeto es más largo que 1 línea, se trunca. Esto funciona correctamente con la fuente dinámica, así que no importa qué tamaño de text se establezca en accesibilidad. Traté de lograr el mismo resultado, pero sin éxito.

Lo que intenté

  1. Truncar cadena a longitud específica
  2. Obtener el tamaño de cadena con sizeWithAttributes al utilizar sizeWithAttributes

Todas estas soluciones funcionan parcialmente, pero faltará algún tamaño de text / dispositivo

Lo que estoy buscando es un enfoque para get el nombre de fuente, el tamaño, el kerning o cualquier otro parámetro de notificación de la pantalla de locking necesario para poder configurar UILocalNotification.alertBody correctamente como solo 1 línea de text en cualquier dispositivo iOS con cualquier ajuste de accesibilidad de tamaño de text.

Soy consciente de que estas properties pueden ser diferentes para diferentes versiones de iOS, pero iOS8 es suficiente para mí.

Gracias

Deje que el sistema operativo haga el layout

Lo más cercano a lo que vas a llegar es una conjetura. Puedes usar

 "\n" 

para hacer cumplir un retorno de carro, pero no sabrá con certeza cuándo usarlo.

No hay soporte para iOS que le permita saber, de antemano, cuál es el tamaño de la pantalla u orientación a la que llegará su notificación.

Estás en contra del banner:

Los banners no muestran localNotification.alertTitle

2 pancartas de notificación, retrato y paisaje

Entonces contra reloj, por así decirlo:

Crea notifications con anticipación. El hecho de que sean locales no es razón para saber qué es lo que deparará el futuro: por todo lo que sabe, puede estar progtwigndo dentro de 1 mes, y el usuario puede haber actualizado el sistema operativo, lo que ocasionará que se apliquen nuevas fonts o restricciones de layout.

En otras palabras, la respuesta a esta pregunta es: debe trabajar para Apple Computer y get una callback local antes de que se muestre la notificación, que es, a partir de la date, no es una opción. .

Centro de notificaciones


Conclusión

Use short alertTitle , short alertBody , posiblemente rociado aquí y allá con \n para forzar nuevas líneas.

 // Use '\n' to force newline localNotification.alertBody = "Alert finetworking.\nWas set for ..." 

La primera línea de aplicaciones de correo de Apple es la propiedad alertTitle , presentada recientemente> = iOS 8.2 2015-03-09 Vea aquí .

Use esta propiedad para proporcionar una breve descripción del motivo de la alerta. Puede especificar una cadena con el text que desea mostrar o puede especificar una cadena para usar como una key de búsqueda en el file Localizable.strings de su aplicación. El valor pnetworkingeterminado de esta propiedad es nil.

Las cadenas de título deben ser cortas, generalmente solo unas pocas palabras que describen el motivo de la notificación. Apple Watch muestra la cadena de título como parte de la interfaz de notificación de apariencia corta, que tiene un espacio limitado.

Según su segunda nota, todas las cadenas de alertBody todas las notifications se truncarán, dependiendo de su longitud. La notificación solo muestra tantos caracteres para complementar la altura específica de UILocalNotification . Sin embargo, sin importar el tamaño, si baja la notificación, mostrará los caracteres restantes siempre que haya alguno, al igual que la aplicación de correo de Apple. Puede acortar su alertBody utilizando cualquier método que funcione para usted , pero en cuanto a formatearlo en términos de protocolos de UIAppearance de UIAppearance , no existe un método aprobado por Apple