0

コンテンツ フレーム (テキストなど) はどのようUIWebViewに変更できますか?

私の要件を説明する下の画像を確認してください。

添付画像

上の画像では、黄色の境界線のボックスがUIWebViewフレームで、赤色がその内容 ( HTML text in webView) です。黒い線 (黄色のボックスの近く) がscroll bar来る場所です。だから私が必要とするのは、フレームUIWebViewを変更せずにコンテンツの幅を減らすだけで、の右端に設定することです。webView'sscroll barwebView

達成することは可能ですか?

あなたのアイデアを共有してください。

ありがとうございました。

4

2 に答える 2

1
[webView setOpaque:NO];
[webView setBackgroundColor:[UIColor redColor]];
NSString *htmlString = @"<html>\
                        <body>\
                        <div style='width:33%; color:white; background-color:black; margin:0px auto; text-align:center;'>Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.</div>\
                        </body>\
                        </html>\
";

[webView loadHTMLString:htmlString baseURL:nil];
  1. 黒いビューはcontentViewまたは任意のdivです。
  2. Red View はあなたのwebView.
  3. margin:0px auto;プロパティはそのdivを中心にします。
  4. 必要に応じてcontentViewの幅を変更できます。divタグで参照width:33%してください。

結果は次のとおりです。

ここに画像の説明を入力

于 2013-06-18T12:17:22.880 に答える
0

UIScrollView プロパティは、iOS 5 以降の UIWebView で使用できます。次のように、デリゲートに webViewDidFinishLoad: メッセージを実装することで、それを使用してビューのサイズを変更できます。

-(void)webViewDidFinishLoad:(UIWebView *)webView {
    CGRect newBounds = webView.bounds;
    newBounds.size.height = webView.scrollView.contentSize.height;
    webView.bounds = newBounds;
}

または

[self.webView stringByEvaluatingJavaScriptFromString:
     [NSString stringWithFormat:
     @"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ",
      (int)self.webView.frame.size.width]];
于 2013-06-18T12:05:21.567 に答える