2015-12-23 2 views
0

Я очень новичок в iOS. Я создаю одно приложение table, где мне нужно отображать содержимое html в моем UIWebView, который находится внутри моего UITableViewCell. Проблема в том, что когда я просматриваю табличный вид, тогда мое содержание webview html скрывается и отображается для последних tableCell, а метод CellForRowAtIndexPath вызывает бесконечное время.Показать содержимое UIWebview HTML в строке таблицы в iOS

Вот мой код:

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

    aWebView.scrollView.scrollEnabled = NO; 
    CGRect frame = aWebView.frame; 
    frame.size.height = 1; 
    aWebView.frame = frame; 
    CGSize fittingSize = [aWebView sizeThatFits:CGSizeZero]; 
    frame.size = fittingSize; 
    aWebView.frame = frame; 
    webViewHeight=fittingSize.height; 

    [tblEventInfo reloadData]; 

} 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return webViewHeight; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 

    EventInfo *event = [[EventInfo alloc] init]; 
    event = [arrayEventInfo objectAtIndex:indexPath.section]; 

    NSLog(@"%@", event.event_title); 

    if(!webViewHTML) 
    { 
     webViewHTML = [[UIWebView alloc]init]; 
     webViewHTML.delegate = self; 
     webViewHTML.backgroundColor = [UIColor clearColor]; 
     webViewHTML.opaque = NO; 
     webViewHTML.userInteractionEnabled = NO; 

     [webViewHTML loadHTMLString:event.event_html baseURL: nil]; 
    } 

    [webViewHTML loadHTMLString:event.event_html baseURL: nil]; 

    webViewHTML.frame = CGRectMake(0, 0, cell.frame.size.width, webViewHeight); 

    [cell.contentView addSubview:webViewHTML]; 

    return cell; 
} 

Пожалуйста, помогите мне, как я могу решить эту проблему? Благодаря!

ответ

0

Попробуйте добавить

[cell.contentView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; 

перед тем

EventInfo *event = [[EventInfo alloc] init]; 

Есть несколько изменений, я хотел бы предложить

EventInfo *event = [[EventInfo alloc] init]; 
event = [arrayEventInfo objectAtIndex:indexPath.section]; 

изменение его

EventInfo *event = (EventInfo *)[arrayEventInfo objectAtIndex:indexPath.section]; 

, как у вас уже есть объект в массиве И еще одна вещь, которую я хотел бы предложить, чтобы сохранить переменную webViewHTML локально в cellForRowAtIndexPath методом UITableViewCell

+0

Я пробовал с вашим кодом, но все же моя проблема такая же. – user2786

0

Вы должны использовать индивидуальный идентификатор tableviewcell. Попробуйте это ниже код

NSString *CellIdentifier = [NSString stringWithFormat:@"CellRow%d%1d",indexPath.section,indexPath.row]; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if(cell == nil) 
{ 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier]; 
    EventInfo *event = [[EventInfo alloc] init]; 
    event = [arrayEventInfo objectAtIndex:indexPath.section]; 

    NSLog(@"%@", event.event_title); 

    if(!webViewHTML) 
    { 
     webViewHTML = [[UIWebView alloc]init]; 
     webViewHTML.delegate = self; 
     webViewHTML.backgroundColor = [UIColor clearColor]; 
     webViewHTML.opaque = NO; 
     webViewHTML.userInteractionEnabled = NO; 

     [webViewHTML loadHTMLString:event.event_html baseURL: nil]; 
    } 

    [webViewHTML loadHTMLString:event.event_html baseURL: nil]; 

    webViewHTML.frame = CGRectMake(0, 0, cell.frame.size.width, webViewHeight); 

    [cell.contentView addSubview:webViewHTML]; 
} 
    return cell; 
+0

Спасибо за ваше время, используя ваш код, теперь проблема с бесконечным циклом решена, но только получение HTML (веб-представление) для моей последней ячейки таблицы. остальная часть остается пустой. – user2786

+0

Можете ли вы загрузить пример приложения. –