2010-11-09 8 views
1

Je travaille pour une société de médias, et dans notre application iPad, nous améliorons notre contenu pour qu'il soit meilleur. Auparavant, nous utilisions un UILabel pour afficher le contenu de nos messages. J'ai utilisé ce pour obtenir la hauteur réelle de mon UILabel:iPad - trouver la véritable hauteur d'un UIWebView

CGSize expectedSize = [label.text sizeWithFont:label.font 
    constrainedToSize:maximumLabelSize lineBreakMode:label.lineBreakMode]; 

Cependant, nous avons changé le contenu de nos messages au format HTML, donc je suis sur un UIWebView. Y a-t-il un moyen de trouver la vraie hauteur de l'UIWebView, comme je le fais avec UILabel?

+0

Voulez-vous dire la hauteur du document qui a été rendu par le UIWebView ou la hauteur du contrôle UIWebView lui-même? –

Répondre

4

Contrairement à une chaîne ordinaire, vous ne pourrez probablement obtenir la hauteur qu'une fois la vue Web terminée. Voici comment vous pouvez le faire dans une vue web méthode déléguée:

- (void)webViewDidFinishLoad:(UIWebView *)webview 
{ 
    NSString *heightString = [webview stringByEvaluatingJavaScriptFromString: 
           @"document.body.clientHeight"]; 
    int height = [heightString intValue]; 
    ... 
} 
+1

Génial, merci! Cependant, j'ai une petite correction pour votre suggestion. Suivant les conseils de http://stackoverflow.com/questions/294250/how-do-i-retreive-an-html-elements-actual-width-and-height j'ai utilisé offsetHeight au lieu de clientHeight, car clientHeight n'a pas fonctionné pour moi. –

+2

Génial. Pourquoi ne pas utiliser scrollHeight? – Seunghoon

Questions connexes