2010-11-09 7 views
1

Я работаю в медиа-компании, и в нашем iPad-приложении мы обновляем наш контент, чтобы он выглядел лучше. Раньше мы использовали UILabel для отображения содержимого наших сообщений. Я использовал это, чтобы получить фактическую высоту моего UILabel:iPad - найдите истинную высоту UIWebView

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

Однако мы изменили содержание наших сообщений в формате HTML, поэтому я использую UIWebView. Есть ли способ найти истинную высоту UIWebView, например, с UILabel?

+0

Вы имеете в виду высоту документа, который был вынесенным в UIWebView или высоту самого блока управления UIWebView? –

ответ

4

В отличие от простой строки, вы, вероятно, сможете получить высоту только после того, как веб-представление закончит рендеринг. Вот как вы можете сделать это в методе просмотра веб-делегата:

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

Удивительный, спасибо! однако, у меня есть небольшая коррекция для вашего предложения. Следуя советам http://stackoverflow.com/questions/294250/how-do-retreive-an-html-elements-actual-width-and-height, я использовал offsetHeight вместо clientHeight, поскольку clientHeight не работал для меня. –

+2

Отлично. Как насчет использования scrollHeight? – Seunghoon

Смежные вопросы