Sim, muitas pessoas estão falando sobre Rich Text no iPhone / iPad e muitos sabem disso NSAttributedString
.
Mas como usar NSAttributedString
? Procurei por muito tempo, sem extrair pistas para isso.
Eu sei como configurar um NSAttributedString
, então o que devo fazer para exibir um texto no iPhone / iPad com rich text?
A documentação oficial diz que deve ser usado com CoreText.Framework
, o que isso significa?
Existe alguma maneira simples como essa?
NSAttributedString *str;
.....
UILabel *label;
label.attributedString = str;
Respostas:
Você deve dar uma olhada no OHAttributedLabel do AliSoftware . É uma subclasse de UILabel que desenha um NSAttributedString e também fornece métodos convenientes para definir os atributos de um NSAttributedString de classes UIKit.
Da amostra fornecida no repo:
Nota: No iOS 6+ você pode renderizar strings atribuídas usando a propriedade attributeText de UILabel.
fonte
A partir do iOS 6.0, você pode fazer assim:
fonte
Você deve tentar TTTAttributedLabel . É um substituto imediato para UILabel que funciona com NSAttributedString e tem desempenho suficiente para UITableViewCells.
fonte
Quase. Basta usar um CATextLayer. Tem um
string
propriedade que você pode definir como um NSAttributedString.EDIT (novembro de 2012): É claro que tudo isso mudou no iOS 6. No iOS 6, você pode fazer exatamente o que o OP pediu - atribuir uma string atribuída diretamente a um rótulo
attributedText
.fonte
Resposta para o alinhamento de texto atribuído por UILabel no iOS 6: use NSMutableAttributedString e adicione NSMutableParagraphStyle ao atributo. Algo assim:
fonte
Achei que seria útil dar um exemplo de análise de uma string HTML (simplificada) para criar uma NSAttributedString.
Não está completo - ele apenas lida com tags <b> e <i>, para começar, e não se preocupa com nenhum tratamento de erros - mas, esperançosamente, também é um exemplo útil de como começar com NSXMLParserDelegate ...
Para usar, faça algo assim:
fonte
A partir do iOS 6.0, você pode fazer assim: outro código de amostra.
fonte
Para Swift use isso,
Isso fará com que TITL textos em negrito,
fonte
Eu sei que é um pouco tarde, mas será útil para outros,
Adicione o atributo desejado ao dicionário e passe-o como um parâmetro de atributos
fonte