web-dev-qa-db-ja.com

UIWebViewでコンテンツオフセットとコンテンツサイズを設定する方法

フォーマット上の理由から、UIScrollViewUIWebViewに変更する必要がありました。

ただし、コンテンツオフセットを0, 0に戻し(再利用可能なUIWebViewsを使用してコンテンツを変更しているため)、ボタンを配置できるようにコンテンツサイズを取得できる必要があるという問題があります。下部に;しかし、UIWebViewにはこれがないようです。

17
jodm

問題を分類するために私が見つけた最良の方法は次のとおりです。

  1. UIWebViewを作成します
  2. UIScrollViewに入れてください
  3. 「loadHTMLString」を使用してHTMLを追加します
  4. "-(void)webViewDidFinishLoad:(UIWebView *)webView {"デリゲートメソッドを使用して、UIWebViewのサイズを検出します

  5. UIWebViewのフレームをコンテンツサイズに設定します。

  6. UIWebViewからインタラクションを削除します
  7. UIScrollViewのコンテンツサイズをコンテンツサイズに設定します。

次に、UIScrollViewの代わりにUIWebViewの機能を使用しました。

ありがとう-JM

8
jodm

この問題は非常に簡単に解決できます。

[[webView scrollView] setContentInset:UIEdgeInsetsMake(64, 0, 44, 0)];

UIEdgeInsetはCGRectとは異なることに注意してください。
UIEdgeInsetのガイドは iOS開発者ライブラリ内 にあります。

28
BaviDaan

JavaScriptを使用します。

私は次の行が魔法をするべきだと思います:

[webView stringByEvaluatingJavaScriptFromString:@"window.scroll(0,0)"];
7
Michael Kessler

これで、contentSizescrollViewプロパティのUIWebViewプロパティを要求できます。これにより、CGSizeMake (width, height)を使用して、そのWebビューのコンテンツサイズを変更することもできます。

3
ekinnear

UIScrollView内にあるUIWebViewを取得したら、ContentOffsetとcontentSizeを簡単に変更できます。 scrollViewを取得する方法に関するここの情報: IWebViewのScrollOffset?

1
CedricSoubrie