2014-11-12 3 views
0

Я использую следующий код, чтобы найти высоту UIWebview, основанную на содержимом html, но не возвращает точно правильный размер. некоторое время он дает больше размера и несколько раз он дает меньше size.I не хочет, чтобы показать дополнительное пространство в UIWebViewКак найти правильную высоту uiwebview на основе содержимого html

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
NSString *desccontentH = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"desc\").offsetHeight;"]; 
NSLog(@"Webviewheight: %@", desccontentH); 
CGSize fittingSize = [webView sizeThatFits:CGSizeZero]; 
NSLog(@"sizeThatFits:Height%f, width:%f",fittingSize.width, fittingSize.height); 
..... 
} 

Как найти правильную высоту UIWebView на основе содержимого HTML?

+0

раз проверить это NSLog (@ "проверить высоту% @", NSStringFromCGSize (webView.scrollView.contentSize)); – Smile

+0

@ismail Я проверил его рабочий тон для среднего количества текста. Размер и размер содержимого scrollviewThatFits оба возвращают одинаковый размер. Если для содержимого большое количество текста, то время возвращается только на некоторый дополнительный размер. – harigharan

ответ

0

contentSize .

- (void)webViewDidFinishLoad:(UIWebView *)webView { 

    CGSize size = webView.scrollView.contentSize; 
    NSLog(@"width = %f, height = %f", size.width, size.height); 
    ... 
} 
+0

Это работает для среднего количества текста. если текст является чем-то большим, чем его не возвращает точный размер. – harigharan

+0

Можете ли вы опубликовать пример HTML? или предоставить больше кода, чтобы понять, что не так – Seryozha

+0

использовать некоторый большой текст (более 100 строк) с тегом html и проверить размер содержимого UIwebsize с помощью следующего кода «CGSize size = webView.scrollView.contentSize; NSLog (@" width =% f , height =% f ", size.width, size.height);" – harigharan

0

Возьмите этот пример, используемый для TextView:

CGFloat descriptionContentHeight = [self sizeOfText:[NSString stringWithFormat:@"%@\n",addressTextView.text] widthOfTextView:addressTextView.frame.size.width withFont:[UIFont fontWithName:@"OpenSans-Light" size:17.5f]].height + 4; 

addressTextView.contentInset = UIEdgeInsetsMake(-10,8,0,0); 
[addressTextView setFrame:CGRectMake(addressTextView.frame.origin.x,addressTextView.frame.origin.y ,addressTextView.frame.size.width, descriptionContentHeight)]; 


    -(CGSize)sizeOfText:(NSString *)textToMesure widthOfTextView:(CGFloat)width withFont:(UIFont*)font 
    { 
    CGSize size = [textToMesure sizeWithFont:font constrainedToSize:CGSizeMake(width-20.0, FLT_MAX) lineBreakMode:NSLineBreakByWordWrapping]; 
    return size; 
    /// FLT_MAX is definded elsewhere :) 
    }