Приложение UIWebView падает с давлением памяти

Я загружаю веб-представление внутри таблицы.

textboby=[[UIWebView   alloc]initWithFrame:CGRectMake(10, 250, 280, 1)];
textboby.userInteractionEnabled=YES;
textboby.scrollView.scrollEnabled=NO;
textboby.backgroundColor=[UIColor clearColor];
textboby.delegate=self;
textboby.tag=12;
[cell.contentView addSubview:textboby];
textboby.hidden=YES;

И загрузил html-строку в webView, как показано ниже:

htmlurl = [[NSBundle mainBundle] bundleURL];
NSString *htmlString =[[NSString alloc] initWithFormat: @"<html>"
                       "<head><meta charset=\"utf-8\"> <style type=\"text/css\">"
                       "body img{width:280px;background-color:black;}iframe{width:280px;background-color:black;}"
                       "</style></head>"
                       "<bod/Users/nuevalgo/Desktop/AjelProject/Aajil/AJDetailInView.hy style=\"font-family:'GE Dinar Two';width:280px;\"><div style='direction:rtl;width:260px;white-space:pre-wrap;padding-right: 20px;'>%@</div>"
                       "</body>"
                       "</html>",detailobj.body];
[textboby loadHTMLString:htmlString baseURL:htmlurl];

Мне нужно установить высоту строки TableView на основе высоты смещения веб-просмотра. Я смог сделать это, как показано ниже:

-(void)webViewDidFinishLoad:(UIWebView *)webView{
    detailTable.scrollEnabled = YES;
    textboby.hidden=NO;
    NSString *heighttmp=[textboby stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"];

    CGRect adjustedFrame = textboby.frame;
    adjustedFrame.size.height = 1;
    textboby.frame = adjustedFrame;

    CGSize frameSize;
    frameSize = [textboby sizeThatFits:CGSizeZero];
    adjustedFrame.size.height = frameSize.height ;
    adjustedFrame.size.width=280;
    textboby.scrollView.contentSize=CGSizeMake(280, frameSize.height);
    textboby.frame = adjustedFrame;

    height=[heighttmp intValue]+260;
   [detailTable beginUpdates];
    [detailTable endUpdates]; 
}

}

Он работает должным образом, но когда [heighttmp intValue] превышает ограничение в 50000, мое приложение неожиданно завершает работу, вызывая нехватку памяти. Что может быть причиной? Есть ли решение?

1 ответ

Вы загружаете веб-представление в каждую ячейку табличного представления? Это почти наверняка плохая идея. Ячейки табличного представления были рассчитаны на доли высоты экрана, а не на 50000 точек.

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

Другие вопросы по тегам