Como sublinhar um UILabel
em Swift? Eu pesquisei os Objective-C, mas não consegui fazê-los funcionar no Swift.
ios
swift
overriding
uilabel
nsattributedstring
Esqarrouth
fonte
fonte
NSAttributedString
?Respostas:
Você pode fazer isso usando NSAttributedString
Exemplo:
EDITAR
Para ter os mesmos atributos para todos os textos de um UILabel, sugiro que você subclasse UILabel e substitua o texto, assim:
Swift 4.2
Swift 3.0
E você coloca seu texto assim:
VELHO:
Swift (2,0 a 2,3):
Swift 1.2:
fonte
UTF16
contagem em vez da contagem de caracteres ao criar seu textRangeNSRange
Swift 5 e 4.2 um liner:
Swift 4 um liner:
Swift 3 um liner:
fonte
Se você está procurando uma maneira de fazer isso sem herança:
Swift 5
Swift 3/4
fonte
UTF16
contagem em vez da contagem de personagens ao criar seuNSRange
Apenas uma pequena correção para a resposta Shlome no Swift 4 e Xcode 9 .
fonte
UTF16
contagem em vez da contagem de personagens ao criar seuNSRange
Swift 4:
1- Crie uma extensão String para obter o texto atribuído.
2- Use ele
Extensão:
Como usar no botão:
Como usar em rótulos:
Ou versão Stoyboard
fonte
Você pode sublinhar o
UILabel
texto usando o Interface Builder.Aqui está o link da minha resposta: Adicionando atributo de sublinhado ao texto parcial UILabel no storyboard
fonte
Mesma resposta em Swift 4.2
Para UILable
Ligue para UILabel como abaixo
Para UIButton
Ligue para UIButton como abaixo
Eu olhei para as respostas acima e algumas delas são valor de texto de desempacotamento forçado . Vou sugerir obter valor desembrulhando com segurança. Isso evitará travamento em caso de valor nulo. Espero que isto ajude :)
fonte
UTF16
contagem em vez da contagem de personagens ao criar seuNSRange
Swift 4, 4.2 e 5.
Eu preciso sublinhar um texto específico em UILabel. Portanto, encontre o intervalo e defina os atributos.
Resultado
fonte
Sublinha para várias strings em uma frase.
Use desta forma.
fonte
Swift 4 mudanças. Lembre-se de usar NSUnderlineStyle.styleSingle.rawValue em vez de NSUnderlineStyle.styleSingle .
`
fonte
A resposta acima está causando um erro no meu ambiente de construção.
Isso não funciona no Swift 4.0:
Em vez disso, tente isto:
espero que isso ajude alguém.
fonte
// Versão Swift 4
fonte
Você também pode usar isso se quiser obter apenas metade da etiqueta como sublinhado: - // Para Swift 4.0+
fonte
Para Swift 2.3
e em ViewController
no
ViewDidLoad
método ou em sua função apenas escrevavai sublinhar o título do seu botão
fonte
Uma classe para definir e remover sublinhado para botões da IU do Swift 5. Espero que isso ajude
fonte