Подтвердить что ты не робот

Получить содержимое UIWebView Высота

У меня есть uiwebview, который загружает данные с помощью функции loadHtmlString. Дело в том, что я загружаю данные из базы данных sqlite, каждый раз, когда я загружаю другую строку разной длины, и, естественно, веб-представление получает разную высоту. Теперь мне нужно знать каждый раз точную высоту uiwebview, чтобы загрузить изображениеView прямо под webView. Я пробовал

- (void)webViewDidFinishLoad:(UIWebView *)aWebView {
    CGRect frame = aWebView.frame;
    frame.size.height = 1;
    aWebView.frame = frame;

    CGSize fittingSize = [aWebView sizeThatFits:CGSizeZero];
    frame.size = fittingSize;
    aWebView.frame = frame;

    NSLog(@"Size: %f, %f", fittingSize.width, fittingSize.height);
}

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

4b9b3361

Ответ 1

Это был неправильный подход к решению этой ситуации; вместо того, чтобы загружать изображение в изображение и иметь в виду всегда высоту и ширину и все это... Самое простое и надежное решение - просто загрузить изображение внутри строки html и это! Просто убедитесь, что baseURL так и есть, и все будет хорошо, независимо от того, какую ориентацию вы берете:

 NSString* extension = @"gif";
    NSString* strRR = [NSString stringWithFormat:@"%@.%@", authorNAme2,extension];
    NSString *path = [[NSBundle mainBundle] bundlePath];
    //NSLog(@"This is the path %@", path);
    NSURL *baseURL = [NSURL fileURLWithPath:path];
    //  NSLog(@"this is the base URL %@",baseURL);

    NSString *cachePath = [NSString stringWithFormat:@"%@/%@", path,strRR];

            NSString * htmlString = [NSString stringWithFormat:@"\
                                     <html>\
                                     <table width='100%%'>\<tr>\<td>\
                                     <body>\
                                     <p style = 'font-size:30px;'> %@ <\p>\
                                     </td></tr><tr><td><br></td></tr><tr><td align ='center'><br><img src='%@' width='60%%' \></td></tr></body>\
                                     </table>\
                                     </html>",authorNAme , cachePath];



            //          NSString *selection = [WebV2 stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
            //          NSLog(@"*/*/*/*/**/*/*/*/*/*/*//*/ This is your selection mate %@" , selection);




            WebV.opaque = NO;
            WebV.backgroundColor = [UIColor clearColor];  
            [self.WebV setScalesPageToFit:YES];
            [self.WebV loadHTMLString:htmlString baseURL:baseURL];

Ответ 2

Попробуйте это

NSString *result = [webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"];

int height = [result integerValue];

в вашем методе webViewDidFinishLoad.

Ответ 3

Вы можете получить высоту содержимого в веб-представлении, обратившись к веб-представлению scrollView:

NSLog(@"%f",myWebView.scrollView.contentSize.height);