¿Cómo cambiar dinámicamente la altura de UIWebView según el contenido HTML?

Tengo una punta simple con pocos botones y UIWebView en la que quiero mostrar algunos HTML. Quiero cambiar la altura en UIWebView según el contenido HTML. Pero no puedo

Mi punta se ve así: mi punta

Mi mainViewController.h :

 #import <UIKit/UIKit.h> @interface ibecViewController : UIViewController <UIWebViewDelegate> @property (weak, nonatomic) IBOutlet UIWebView *webV; @end 

He usado sizeToFit , pero no funciona. Mi mainViewController.m :

 #import "ibecViewController.h" @interface ibecViewController () @end @implementation ibecViewController @synthesize webV; - (void)viewDidLoad { [super viewDidLoad]; NSString *myHTML = @"<html><body><h1>Hello, world!</h1><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p></body></html>"; [webV loadHTMLString:myHTML baseURL:nil]; [webV sizeToFit]; } - (void)viewDidUnload { [self setWebV:nil]; [super viewDidUnload]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } - (void)webViewDidStartLoad:(UIWebView *)webView { NSLog(@"123"); } - (void)webViewDidFinishLoad:(UIWebView *)webView { NSLog(@"456"); } @end 

Mi segunda pregunta: ¿Por qué no funcionan los methods webViewDidStartLoad y webViewDidFinishLoad ? A pesar de que he escrito que mi controller se ajusta a UIWebViewDelegate . Soy nuevo en iOS. La altura de la WebView no cambia. Y mi aplicación se ve así: Mi aplicación

He encontrado la solución. En mi ibecViewController.m he escrito el método

 - (void)viewWillAppear:(BOOL)animated { [[self webV] setDelegate:self]; } 

Y funciona como delegado. Mis methods webViewDidStartLoad y webViewDidFinishLoad también funcionaron. Luego implementé

 - (void)webViewDidFinishLoad:(UIWebView *)webView { [webV sizeToFit]; } 

Respuesta a la primera pregunta:

Intente usar [webV setScalesPageToFit:YES]; function en lugar de sizeToFit . El contenido HTML se autorizará al tamaño de la vista web. Creo que esta function solo está presente en las versiones superiores de iOS.

Respuesta a la segunda pregunta: debe delegar el object de vista web con el object propio que representa el controller de vista ( ibecviewcontroller ) dentro del cual se definió la vista web. Después de la delegación, probablemente puedas usar las funciones de delegado. Si lo haces a través de Xib, entonces debes conectar el object de vista web que en este caso es webV con el object o el ícono del propietario de los files en IB.

Espero que ayude..