开发者

How to set content offset and content size in a UIWebView

I have had to change a UIScrollView into a UIWebView due to formatting reasons.

There is a problem though that I need to be able to get the content offset back to 0, 0 (as I am using reusab开发者_C百科le UIWebViews and changing content) and get the content size so I can place a button at the bottom; but UIWebView does not seem to have this.


This problem can be solved quite easily:

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

Remember that UIEdgeInset is different from CGRect!
A guide on UIEdgeInset can be found in the iOS Developer Library.


The best way I found to sort the problem was:

  1. Create a UIWebView
  2. Put it in a UIScrollView
  3. Add the HTML into it using "loadHTMLString"
  4. Using the "- (void)webViewDidFinishLoad:(UIWebView *)webView {" delegate method I detect the size of the UIWebView

  5. Set the frame of the UIWebView to the content size.

  6. Remove interaction from the UIWebView
  7. Set the Content size of the UIScrollView to the content size.

Then used the functionality of the UIScrollView instead of the UIWebView.

Thanks -JM


Use JavaScript.

I think that the next line should do the magic:

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


Now you can ask for the contentSize property of the scrollView property of a UIWebView. This enables you to also change the content size of that web view, using CGSizeMake (width, height).


Once you get the UIScrollView that is inside the UIWebView, it will be easy to change ContentOffset and contentSize. Information here on how to get the scrollView : ScrollOffset in UIWebView?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜