Swift Pills

Dosis rápidas de conocimiento sobre Swift y desarrollo en ecosistemas Apple

Números que no hacen salto de línea en SwiftUI: ¿conoces este detalle tipográfico que mejora la legibilidad?

📱 Cuando trabajamos con textos dinámicos en SwiftUI, hay un problema visual que muchos pasamos por alto: los números grandes pueden partirse entre líneas de forma incómoda. Por ejemplo, 1 000 000 podría aparecer como 1 000 en una línea y 000 en la siguiente.

🔍 Este fenómeno afecta especialmente a fechas, cantidades monetarias, números de teléfono y cualquier cifra con separadores. La experiencia de lectura se deteriora porque el usuario debe reconstruir mentalmente el número completo.

✨ La solución está en los espacios de no separación (non-breaking spaces), representados por el carácter Unicode \u{00A0}. Este tipo de espacio impide que el sistema divida el texto en ese punto, manteniendo los elementos unidos en la misma línea.

💡 En Swift, podemos crear una extensión de String que reemplace los espacios normales por espacios de no separación. Esto es especialmente útil cuando trabajamos con NumberFormatter o formateamos cantidades con separadores de millares.

🎯 El truco consiste en aplicar esta transformación justo antes de mostrar el texto. Podemos encapsularlo en un modificador personalizado de SwiftUI que intercepte el contenido y aplique el formato automáticamente.

🧩 Para casos más complejos, Foundation ofrece AttributedString con propiedades como .keepsTogether, aunque requiere convertir el String a este formato más avanzado. Es la opción ideal cuando necesitamos control granular sobre la tipografía.

🌍 Este detalle cobra especial relevancia en localizaciones europeas donde usamos espacios como separadores de millares, a diferencia del formato anglosajón que usa comas. La localización correcta mejora significativamente la profesionalidad de la app.

👨‍💻 Cuidar estos pequeños detalles tipográficos distingue apps amateur de productos pulidos. ¿Prestas atención a cómo se parten tus textos dinámicos en diferentes tamaños de pantalla?

Posted in

Deja un comentario