2009-09-17 25 views
5

Me preguntaba si UITextView puede mostrar texto enriquecido? Quiero tener un formato simple en mi texto de solo lectura (como una alineación diferente para diferentes partes del texto). si no, ¿qué vista debo usar?UITextView ¿Texto enriquecido?

Respuesta

2

En general, la mejor manera de hacerlo es utilizar un UIWebView y cargar contenido local en donde puede insertar etiquetas y todo lo que necesite. La carga local debe ser rápida y puede estilizarla para que se vea como cualquier uitextview

Otra opción es usar una subclase UILabel en su lugar y obtener el código Three20 open-souce. Quiere el TTStyledTextLabel.

+0

¿Puedo generar el html sobre la marcha y cargarlo en la vista? –

+0

sí, puede generarlo y cargarlo cuando lo desee, solo tiene que escribir el código que generará la cadena html – coneybeare

2

Aquí hay un fragmento de código para cualquiera que intente hacer esto - use el uiwebview para manejar texto con estilo - hacer que sus archivos js locales funcionen puede ser un truco. Simplemente ingrese a Build Fhases -> Compile Sources -> y agregue los archivos js a los que desea acceder localmente en su contenido html. También puede evaluar cadenas como javascript desde el objetivo c en su vista web.

NSString *someHtmlContent = [NSString stringWithFormat:@"<html><head><style type=\"text/css\">body {padding: 0px; margin: 0px; }</style><script src=\"yourLocalJsFile.js\"></script></head><body></body></html>", dynamicText]; 

NSLog(@"HTML with code: \n%@", someHtmlContent); 

NSString *resourcePath = [[[[NSBundle mainBundle] resourcePath] 
           stringByReplacingOccurrencesOfString:@"/" withString:@"//"] 
           stringByReplacingOccurrencesOfString:@" " withString:@"%20"]; 

[MyWebView loadHTMLString:someHtmlContent baseURL:[NSURL URLWithString: 
              [NSString stringWithFormat:@"file:/%@//", resourcePath]]]; 

[self.MyWebView setDelegate:self]; 

Configuración de decidir cómo manejar enlaces let delegado - ¿quieres que se abran en Safari móvil o en su vista web

1

Puede tener un vistazo al proyecto EGOTextView en github. Se describe como

"Una caída completa en reemplazo de UITextView, agregando soporte para edición de texto enriquecido."

+0

El enlace es https://github.com/enormego/EGOTextView – Andy

Cuestiones relacionadas