Attributed String en Swift: guía completa con ejemplos de código

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Attributed String en Swift: cuando el texto normal no es suficiente



¿Alguna vez te has preguntado por qué en algunas aplicaciones el texto parece una sábana gris y aburrida, mientras que en otras parece una obra de arte? El secreto es simple: attributed string. Es la herramienta más poderosa del desarrollador iOS, que permite controlar cada píxel del texto: color, fuente, espaciado, sombras e incluso enlaces interactivos.



En este artículo, analizaremos cómo crear NSAttributedString en Swift, cómo configurarlo y dónde aplicarlo. No solo aprenderás datos secos, sino técnicas reales que harán que tu aplicación sea más bonita y fácil de usar. ¡Vamos allá!



¿Qué es Attributed String? La base que debes conocer



En un String clásico, todos los caracteres son iguales: una fuente, un color, un tamaño. NSAttributedString (y su versión mutable NSMutableAttributedString) es una cadena donde cada carácter o rango de caracteres puede tener su propio conjunto de atributos. Imagina que escribes la palabra «Hola»: la letra «H» es roja y negrita, la «o» es azul y cursiva, y así sucesivamente. ¿Suena a magia? No, es simplemente Swift attributed string.



¿Dónde se usa esto en aplicaciones reales?

  • Editores de texto (resaltado en negrita, cursiva)
  • Redes sociales (menciones @username cliqueables y resaltadas en color)
  • Aplicaciones de chat (diferentes colores para diferentes usuarios)
  • Libros electrónicos (diferentes fuentes para títulos y citas)
  • Cualquier interfaz donde el texto no sea solo texto, sino un elemento de diseño


Cómo crear NSAttributedString en Swift: de lo simple a lo complejo



Comencemos con un ejemplo básico. En Swift, crear un attributed string es un proceso en el que defines un diccionario de atributos y lo aplicas al texto.



Ejemplo 1: Attributed string muy simple

import UIKit

let plainText = "Hello, Swift!"let attributes: [NSAttributedString.Key: Any] = [ .foregroundColor: UIColor.red, .font: UIFont.boldSystemFont(ofSize: 18)]let attributedString = NSAttributedString(string: plainText, attributes: attributes)

// Usamos en UILabellet label = UILabel()label.attributedText = attributedString


En este ejemplo, creamos una cadena donde todo el texto es de color rojo, con fuente negrita de 18pt. Observa NSAttributedString.Key — es la enumeración de todos los atributos posibles. Hay decenas, y veremos los más útiles.



Ejemplo 2: Diferentes atributos para diferentes partes del texto

Aquí es donde comienza la diversión real. Usamos NSMutableAttributedString:

let mutableString = NSMutableAttributedString(string: "Esto es negrita, y esto es texto rojo")

// Aplicamos fuente negrita a los primeros 10 caracteresmutableString.addAttribute(.font, value: UIFont.boldSystemFont(ofSize: 16), range: NSRange(location: 0, length: 10))

// Aplicamos color rojo a los últimos 15 caracteresmutableString.addAttribute(.foregroundColor, value: UIColor.red, range: NSRange(location: 14, length: 15))

// Usamos en UITextViewlet textView = UITextView()textView.attributedText = mutableString


Importante: NSRange trabaja con posiciones de caracteres, no con índices de Swift. Ten cuidado, especialmente con emojis y caracteres multibyte.



Top 10 atributos que usarás todos los días



Aquí tienes una lista de las claves que usarás más a menudo al trabajar con NSAttributedString Swift:



  • .font — fuente (UIFont)
  • .foregroundColor — color del texto
  • .backgroundColor — fondo del texto
  • .underlineStyle — subrayado (NSUnderlineStyle)
  • .strikethroughStyle — tachado
  • .paragraphStyle — p

Blogs

Book Recommendations