2010-07-21 2 views
2

Je veux définir la hauteur dynamique pour webview en fonction du texte dynamique. J'ai essayéDéfinir la hauteur dynamique de webview en fonction du contenu iphone

 [my_webview sizeThatFits:CGSizeZero]; 

Mais cela n'a pas fonctionné pour moi. Je veux définir la hauteur de webview dynamiquement.

Merci d'avance.

+0

[voir sizeThatFits:] ne change pas voir la taille Essayez [view sizeToFit] mais je ne suis pas sûr que cela fonctionnera même pour une vue web car elle se redimensionne en fonction des sous-vues, et la vue web n'a pas de sous-vues typiques. Par conséquent, ceci est un commentaire et non une réponse. – lukya

Répondre

3

Voir my answer pour une question similaire. L'astuce consiste à définir le cadre de la webView à une hauteur minimale avant d'envoyer -sizeThatFits:.

1

Configurez votre affichage Web comme suit:

- (void)webViewSettings { 
    NSString *htmlString = @"Your HTML String"; 
    NSString* descHtmlString = [NSString stringWithFormat: @"<html><meta name=\"viewport\" content=\"width=300, user-scalable=yes\" /><div style='width:300px' id='ContentDiv'><font face=\"Arial\" size=2.5 color='#702f70'>%@</font></div></html>", htmlString]; 
    descHtmlString = [descHtmlString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
    [self.webView loadHTMLString:descHtmlString baseURL:[NSURL URLWithString:@""]]; 
} 

ensuite mis en œuvre UIWebViewDelegate dans votre fichier d'interface et la méthode suivante dans le fichier de mise en œuvre:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
     NSString *contentHeight = [self.descriptionWeb stringByEvaluatingJavaScriptFromString:@"document.getElementById('ContentDiv').offsetHeight"]; 
     self.descriptionWeb.frame = CGRectMake(10,webView.frame.origin.y, 300, [contentHeight floatValue]); 
}