una poner pie para mail insertar imagen firma electronica crear correo como ios iphone objective-c uiwebview uitextview

ios - poner - insertar imagen en firma mail iphone



¿Cómo mostrar texto HTML desde API en el iPhone? (8)

El mejor ejemplo para explicar mi situación es usar una publicación de blog. Digamos que tengo un UITableView cargado con títulos de publicaciones de blog que obtuve de una API. Cuando hago clic en una fila, quiero mostrar la publicación detallada del blog.

Al hacer eso, la API está devolviendo varios campos, incluido el "cuerpo de la publicación" (que es texto HTML). Mi pregunta es, ¿qué debo usar para mostrarlo para que aparezca como HTML formateado? ¿Debo usar un UIWebView para eso? No estoy seguro si usas un UIWebView cuando estás literalmente viendo una página web (como inicializarla con una URL o algo así) o si puedes entregarle una cadena HTML y la formateará correctamente.

Hay varios otros campos que se mostrarán en esta página, como el título, la categoría, el autor, etc. Solo uso UILabels para esos, así que no hay problemas. Pero no sé qué hacer con el fragmento HTML. Estoy haciendo todo esto programáticamente, por cierto.

Si no puede decirlo, soy relativamente nuevo en el desarrollo de iOS, solo de 2 a 3 semanas, sin fondo obj-c. Entonces, si un UIWebView es el enfoque correcto, también apreciaría cualquier "¡guau!" Notas, si las hay.


En el caso especial de HTML primitivo (estilos de texto, etiquetas p / br), también puede utilizar UITextView con una propiedad no documentada:

-[UITextView setValue:@"<b>bold</b>" forKey:@"contentToHTMLString"]

A pesar de que no está documentado, se usa en muchas aplicaciones que conozco y hasta ahora no ha causado un solo rechazo.



Mi escenario: Tengo una vista de texto en un controlador de vista y tengo que mostrar datos en la vista de texto que está en formato HTML.

Swift 3:

func detectUrlInText() { let attrStr = try! NSAttributedString( data: "<b><i>/(Ldesc)</i></b>".data(using: String.Encoding.unicode, allowLossyConversion: true)!, options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], documentAttributes: nil) desc.attributedText = attrStr desc.font = UIFont(name: "CALIBRI", size: 14) } // Ldesc is the string which gives me the data to put in the textview. desc is my UITextView. :)


Puede mostrarlo eliminando el texto HTML / JS como (alinear, centrar, br>). Utilice estos métodos si está apuntando a iOS7.0 y superior.

NSString *htmlFile; htmlFile=[array valueForKey:@"results"]; NSAttributedString *attr = [[NSAttributedString alloc] initWithData:[htmlFile dataUsingEncoding:NSUTF8StringEncoding]options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:@(NSUTF8StringEncoding)}documentAttributes:nil error:nil]; NSLog(@"html: %@", htmlFile); NSLog(@"attr: %@", attr); NSLog(@"string: %@", [attr string]); NSString *finalString = [attr string]; [webView loadHTMLString:[finalString description] baseURL:nil];


Puede usar el método UIWebView''s - loadHTMLString: baseURL :.

Enlace de referencia: here


Como dijo David Liu, UIWebview es el camino a seguir. Recomendaría algunos compilando la cadena HTML por separado y luego pasándola a UIWebView. Además, haría el fondo transparente, usando [webView setBackgroundColor:[UIColor clearColor]] para que te resulte más fácil hacer que las cosas se vean como deberían.

Aquí hay un ejemplo de código:

- (void) createWebViewWithHTML{ //create the string NSMutableString *html = [NSMutableString stringWithString: @"<html><head><title></title></head><body style=/"background:transparent;/">"]; //continue building the string [html appendString:@"body content here"]; [html appendString:@"</body></html>"]; //instantiate the web view UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.frame]; //make the background transparent [webView setBackgroundColor:[UIColor clearColor]]; //pass the string to the webview [webView loadHTMLString:[html description] baseURL:nil]; //add it to the subview [self.view addSubview:webView]; }

NOTA:

La ventaja de usar un ''NSMutableString'' es que puede continuar construyendo su cadena a través de una operación de análisis completa y luego pasarla al ''UIWebView'', mientras que un ''NSString'' no se puede cambiar una vez que se haya creado.


self.textLbl.attributedText = [[NSAttributedString alloc] initWithData: [@"html-string" dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];


NSString *strForWebView = [NSString stringWithFormat:@"<html> /n" "<head> /n" "<style type=/"text/css/"> /n" "body {font-family: /"%@/"; font-size: %@; height: auto; }/n" "</style> /n" "</head> /n" "<body>%@</body> /n" "</html>", @"helvetica", [NSNumber numberWithInt:12], ParameterWhereYouStoreTextFromAPI]; [self.webview loadHTMLString:strForWebView baseURL:nil];

Estoy usando este código para establecer incluso la fuente para el texto de webview y pasar mi "ParameterWhereYouStoreTextFromAPI" de ivar donde estoy almacenando el texto obtenido de la API.