Attributed String em Swift: quando o texto comum não é suficiente
Você já se perguntou por que em alguns aplicativos o texto parece uma folha cinza e chata, enquanto em outros parece uma obra de arte? O segredo é simples: attributed string. Esta é a ferramenta mais poderosa do desenvolvedor iOS, que permite controlar cada pixel do texto: cor, fonte, espaçamento, sombras e até links interativos.
Neste artigo, vamos explorar como criar NSAttributedString em Swift, como configurá-lo e onde aplicá-lo. Você aprenderá não apenas fatos secos, mas técnicas reais que tornarão seu aplicativo mais bonito e funcional. Vamos lá!
O que é Attributed String? O básico que você precisa saber
Em uma String clássica, todos os caracteres são iguais — uma fonte, uma cor, um tamanho. NSAttributedString (e sua versão mutável NSMutableAttributedString) é uma string onde cada caractere ou intervalo de caracteres pode ter seu próprio conjunto de atributos. Imagine escrever a palavra "Olá": a letra "O" é vermelha e negrito, "l" é azul e itálico, e assim por diante. Parece mágica? Não, é simplesmente Swift attributed string.
Onde isso é usado em aplicativos reais?
- Editores de texto (destaque em negrito, itálico)
- Redes sociais (menções @username clicáveis e destacadas em cores)
- Aplicativos de chat (cores diferentes para usuários diferentes)
- Livros eletrônicos (fontes diferentes para títulos e citações)
- Qualquer interface onde o texto não é apenas texto, mas um elemento de design
Como criar NSAttributedString em Swift: do simples ao complexo
Vamos começar com um exemplo básico. Em Swift, criar uma attributed string é um processo onde você define um dicionário de atributos e o aplica ao texto.
Exemplo 1: Attributed string mais simples
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)
// Usando em UILabellet label = UILabel()label.attributedText = attributedStringNeste exemplo, criamos uma string onde todo o texto é vermelho, com fonte negrito de 18pt. Observe o NSAttributedString.Key — é a enumeração de todos os atributos possíveis. Existem dezenas deles, e veremos os mais úteis.
Exemplo 2: Atributos diferentes para partes diferentes do texto
Aqui é onde a diversão começa. Usando NSMutableAttributedString:
let mutableString = NSMutableAttributedString(string: "Este é negrito, e este é texto vermelho")
// Aplicando fonte negrito aos primeiros 8 caracteresmutableString.addAttribute(.font, value: UIFont.boldSystemFont(ofSize: 16), range: NSRange(location: 0, length: 8))
// Aplicando cor vermelha aos últimos 17 caracteresmutableString.addAttribute(.foregroundColor, value: UIColor.red, range: NSRange(location: 17, length: 17))
// Usando em UITextViewlet textView = UITextView()textView.attributedText = mutableStringImportante: NSRange trabalha com posições de caracteres, não com índices do Swift. Tenha cuidado, especialmente com emojis e caracteres multibyte.
Top 10 atributos que você usará todos os dias
Aqui está uma lista de chaves que você usará com mais frequência ao trabalhar com NSAttributedString Swift:
.font— fonte (UIFont).foregroundColor— cor do texto.backgroundColor— fundo do texto.underlineStyle— sublinhado (NSUnderlineStyle).strikethroughStyle— tachado.paragraphStyle— p