3

HTMLコンテンツをダウンロードして、そのサイズを(javascript関数を呼び出して)調べたいと思います。その後、UIWebViewフレームをそのサイズに変更したいと思います。そして、html コンテンツは全体を埋める必要がありUIWebViewます。

ドキュメントと同様の質問については、stackoverflow を参照してください。何も助けませんでした。reloadメソッドを呼び出して、サーバーから HTML を2 回ダウンロードしたくありません。HTML の正しい幅と高さを取得しますが、UIWebViewフレーム サイズを変更した後、HTML コンテンツがフレームを埋めません。(以下のコードは で呼び出されます- (void)webViewDidFinishLoad:(UIWebView *)webView)

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *width = [f numberFromString:[self.mediaWebView stringByEvaluatingJavaScriptFromString:@"getContentWidth()"]];
NSNumber *height = [f numberFromString:[self.mediaWebView stringByEvaluatingJavaScriptFromString:@"getContentHeight()"]];

self.mediaWebView.frame = CGRectMake(BORDER_WIDTH, BORDER_WIDTH, _frameWidth, _frameHeight);
self.mediaWebView.bounds = CGRectMake(0, 0, _frameWidth, _frameHeight);

初期コード:

self.mediaWebView = [[UIWebView alloc] initWithFrame:CGRectMake(BORDER_WIDTH, BORDER_WIDTH, _frameWidth, _frameHeight)];
[self.mediaWebView setBackgroundColor:[UIColor clearColor]];
[self.mediaWebView setOpaque:FALSE];
[self.mediaWebView setUserInteractionEnabled:TRUE];
self.mediaWebView.scrollView.scrollEnabled = FALSE;
self.mediaWebView.scrollView.bounces = FALSE;
self.mediaWebView.delegate = self;
self.mediaWebView.contentMode = UIViewContentModeRedraw;
self.mediaWebView.backgroundColor = [UIColor blackColor];


NSString *stringUrl = @""// some URL

NSURL *url = [NSURL URLWithString:stringUrl];
[self.mediaWebView loadHTMLString:[self.questionView.question.mediaHtml description] baseURL:url];

self.mediaWebView.scalesPageToFit = TRUE;

[self addSubview:self.mediaWebView];
4

1 に答える 1

2

質問の下のコメントで説明したように。scalesPageToFit を FALSE に設定するだけで十分でした

于 2012-11-20T12:11:20.173 に答える