0

uitableview セルに webview があります。問題は、Web ビューが uitableview セルの 75% しか占めていないことです。

iOS が Web ビューの高さをどのように決定したかはわかりません。必要なスペースを増やすことができないようです。テーブルビュー セルの高さを高くしたり低くしたりできますが、Web ビューは高くなりません。

私がする必要があると想像したことの 1 つは、テーブルビュー セルのサイズを自動的にスケーリングできるように、テキストの大きさに基づいて Web ビュー自体の高さを取得することでした。

a)どの関数がそれを取得するのかわかりません

b)これはメソッドに入ると思います(void)webViewDidFinishLoad:(UIWebView *)webViewが、アプリをその機能に入れることができません。デバッガーを試してみましたが、まったく入っていないようです。(Web ビュー オブジェクトは独自のコントローラー内にあります)

#import "WebViewCell.h"

NSUInteger const WEB_VIEW_ROW_HEIGHT = 75;

@implementation WebViewCell

@synthesize webView;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
 self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
    // Initialization code
}
return self;
}

  - (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
  [super setSelected:selected animated:animated];

// Configure the view for the selected state
}

 @end

また、実際にテーブルビュー セルに Web ビューを設定するコントローラーでは、次のようになります。

  WebViewCell *cell = [[ViewManager instance] loadWebViewCell:self.tableView cellID:eventDetailsValueCellID];

        NSString *htmlText = [news valueForKey:propertyName];


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


        return cell;

(void)webViewDidFinishLoad:(UIWebView *)webViewこのセットアップでメソッドをどこに置くべきかわかりません。それは WebViewCell.m または WebViewCell.m を呼び出すコントローラーに入りますか?

また、根本的な問題は、Web ビューをセルのサイズに合わせて拡大縮小するにはどうすればよいかということです。

4

1 に答える 1

1

UIWebViewDelegateで実装する(void)webViewDidFinishLoad:(UIWebView *)webView必要があります。

cell.webView.delegate = selfcellForRowAtIndexPathメソッドを追加し、デリゲートプロトコル「UIWebViewDelegate」をコントローラーのヘッダーファイルに追加してみてください。

これにより、少なくとも(void)webViewDidFinishLoad:(UIWebView *)webViewWebビューが読み込まれた後、高さの計算を実行できるようになります。

計算はおそらく次のようになります。

webView.frame = CGRectMake(0, 0, webView.superview.frame.size.width, webView.superview.frame.size.height);
于 2012-04-25T17:14:16.487 に答える