Pergunta

Eu tenho o seguinte HTML em um UITextView e gostaria de para renderizá-lo em um UITextView

é o meu corpo para a nota

<a href="/arc/item/21">food item - more item stuff</a>;`

Deixe-me acrescentar:actualmente, mostrando como azul e sublinhado e não clicável.Eu gostaria de torná-lo em negrito e não clicável.Eu li os documentos referentes linkTextAttributes mas, não ter usado isso, ele é um pouco mais de mim e eu realmente não vejo qualquer maneira fácil de manipular isso.Como eu poderia apenas processar o link acima em negrito e preto (azul) e manter o não-clicáveis natureza?

Foi útil?

Solução

ATUALIZAÇÃO (solução usando UITextView do linkTextAttributes)

self.testTextView.editable = NO;
self.testTextView.selectable = YES;
self.testTextView.userInteractionEnabled = NO;  // workaround to disable link - CAUTION: it also disables scrolling of UITextView content
self.testTextView.dataDetectorTypes = UIDataDetectorTypeLink;
self.testTextView.linkTextAttributes = @{NSFontAttributeName : [UIFont boldSystemFontOfSize:14.0f], // NOT WORKING !?
                                         NSForegroundColorAttributeName : [UIColor redColor]};

...

self.testTextView.text = @"Lorem ipsum http://www.apple.com Lorem ipsum";

Como você pode ver nos comentários, eu não era capaz de definir o novo tipo de letra para linkTextAttributes, embora o atributo cor foi a funcionar como previsto.

Se você pode começar afastado com a cor atributo ou algum outro atributo de texto para seu estilo de URLs e você não terá de se preocupar com deficiência UITextView rolagem, então esta pode ser a sua solução.


ANTERIOR (solução alternativa)

Se você estiver usando o Storyboard/xib, em seguida, certifique-se de que você tenha desmarcado Detecção -> Links para o seu UITextView.Você pode fazer o seu link em negrito, definindo o seu recipiente de fonte para algumas letras em negrito.Se você deseja oferecer suporte a diferentes de texto/estilos de tipo de letra em um objeto de cadeia de caracteres, então você deve realmente olhar para NSAttributedString ou NSMutableAttributedString.

Veja: https://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/classes/NSAttributedString_Class/Reference/Reference.html.

Exemplo:

UIFont *linkFont = [UIFont fontWithName:@"SomeBoldTypeface" size:12];
NSString *link = @"food item - more item stuff";

NSMutableAttributedString *someString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"is my body for the note %@; let me ad", link]];
[someString addAttribute:NSFontAttributeName value:linkFont range:NSMakeRange(24, link.length)];

UITextView *textView = [[UITextView alloc] init];
textView.attributedText = someString;
...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top