2013-04-22 5 views
2

У меня есть табличное представление, и я хочу добавить веб-просмотр в ячейку, когда мы нажимаем на ячейку, плюс высота этой конкретной ячейки также должна корректироваться в соответствии с содержимым веб-просмотра. Предложения приветствуются.Добавление UIWebView в UITableViewCell

+0

Вы используете автоматическую компоновку или нет? –

+0

Я просто поддерживаю IO6 – Suhaiyl

+0

Да Использование AutoLayout, но загрузка webviews в tableviewcell кажется тяжелой. :( – Suhaiyl

ответ

0

В делегатом - cellForRowatIndex:, вы можете сделать this-

NSString *HtmlStr = [NSString stringWithFromat:@"<div style=\"font-family:\"Times New Roman\";font-size:18px;\">%@</div>",@"YOUR_String_DATA"]; 

[cell.webView loadHTMLString:HtmlStr baseURL:nil]; 

Найти размер контента (высота в вашем случае), используя this-

CGSize aSize = [@"YOUR_String_DATA" sizeWithFont:@"Times New Roman" minFontSize:18.0f actualFontSize:18.0f forWidth:TableViewCellWidth lineBreakMode:lineBreakMode]; 

cell.webView.frame = CGRectMake(0,0,aSize.width,aSize.height); 

Кроме того, в методе heightForRowatIndex: делегат у необходимо как-то вернуть высоту aSize.height

2

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

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    NSString *string = [_webView stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"body\").offsetHeight;"]; 
    CGFloat height = [string floatValue] + 8; 
    CGRect frame = [_webView frame]; 
    frame.size.height = height; 
    [_webView setFrame:frame]; 

//Store the height in some dictionary and call [self.tableView beginUpdates] and [self.tableView endUpdates] 
} 

Конечно, это заняло бы плохо в производительности удар, но для одной ячейки это не плохо. Если в случае, если у одной ячейки есть веб-представление, перейдите по ссылке Ishank's. Однако, если ваша строка содержит элементы div, такие как <td>, метод вернет ошибочную высоту.

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