2011-07-08 3 views
0

私は、リッチテキストをUIWebviewにロードしてから、tableviewセルのcontentviewにwebviewを追加するために、プレーンテキストではなくリッチテキストを読み込むようにtableviewを変更しました。 しかし、この変更では、テキストは表示されなくなりました。UITableViewのUIWebViewがテキストを失う

-(UITableViewCell *)tableView:(UITableView *)tableView 
cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *CellTVIdentifier = @"CellTVIdentifier"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellTVIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] 
       initWithStyle:UITableViewCellStyleDefault 
       reuseIdentifier:CellTVIdentifier] 
       autorelease]; 
    } 

    int row = indexPath.row; 

    NSString *cellString = [theArray objectAtIndex:row]; 

    // replaced cell.textLabel.text=cellString;  
    // with 

    UIWebView *webTVCell = [[UIWebView alloc] init]; 
    [webTVCell loadHTMLString:cellString baseURL:nil]; 
    [cell.contentView addSubview:webTVCell]; 
    [webTVCell release]; 

    return cell; 

しかし、cellString内のテキストはもはやテーブルビューの任意のセルに表示されます。ここでは-cellForRowAtIndexPathためのコードです。誰でも助けることができますか?非常に感謝しています。

答えて

0
UIWebView *webTVCell = [[UIWebView alloc] initWithFrame:cell.bounds]; 

代わりのUIWebView *webTVCell = [[UIWebView alloc] init];

UIWebViewは(のUITableViewのような)別のスクロールバーの内側に動作するように設計されていません、これを試してください。

そして、あなたは UITableView.rowHeightプロパティまたは以下 UITableViewDelegateの方法のいずれかを使用する必要があり、セルのサイズを変更するには:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

ところで

[UITableView reloadData]は、通常のテーブルを更新するための悪い決定です。

+0

それがうまくいった!ありがとうございました!しかし今はまだ問題が1つあります。各セルのサイズを-heightForRowAtIndexPathに設定して、tableviewcellsの高さを適切に設定します。しかし、Webビューはコンテンツの約半分しか表示しません。私はテキストの残りの部分にスクロールすることができますが、セルの底に隠れています。スクロールするのではなく、各セルのコンテンツを塗りつぶすWebビューの方法はありますか?ご協力いただきありがとうございます。 – Namhcir

+0

[webTVCell setScalesPageToFit:YES]; –

+0

これは、テキストのサイズを非常に小さく設定しているため、判読できません。また、私はtableviewcellsの背景色を設定しましたが、テキスト領域は灰色で、残りのセルは指定した色です。 – Namhcir

関連する問題