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 UIWebView
s 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:
- Create a
UIWebView
- Put it in a
UIScrollView
- Add the HTML into it using "loadHTMLString"
Using the "- (void)webViewDidFinishLoad:(UIWebView *)webView {" delegate method I detect the size of the
UIWebView
Set the frame of the
UIWebView
to the content size.- Remove interaction from the
UIWebView
- 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?
精彩评论