简体   繁体   中英

UIWebView content how to resize/scale it?

I came to a point where I was able to lock the horizontal scroll as I wanted however when I rotate from landscape to portrait the content is still to large. I need to resize/scale it down myself but I don't know how to so far I use this :

- (void)viewDidLoad

{
    [super viewDidLoad];
    NSString *fullURL = @"http://igo.nl";
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [_webView loadRequest:requestObj];
    _webView.scrollView.bounces = false;
    _webView.scalesPageToFit = YES;
    _webView.contentMode = UIViewContentModeScaleAspectFit;
}


    - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
    {

        if(fromInterfaceOrientation == UIInterfaceOrientationPortrait)
        {
            //_webView.scrollView.contentSize = CGSizeMake(320, _webView.scrollView.contentSize.height);
        }
        else
        {
            //[_webView reload];
            _webView.bounds = CGRectMake(0, 0, 320,_webView.bounds.size.height);
            _webView.frame = CGRectMake(0, 0, 320, _webView.frame.size.height);
            _webView.scrollView.contentSize = CGSizeMake(320, _webView.scrollView.contentSize.height);

        }
    }

EDIT: What I seem to need is that the content is zoomed out

Use the delegate methods of UIWebViewDelegate

@interface YOUR_CLASS : PARENT_CLASS <UIWebViewDelegate>

In viewDidLoad

...
[_webView setDelegate:self];
...

Call the delegate method

- (void)webViewDidFinishLoad:(UIWebView *)webView {

    [webView.scrollView setContentSize: CGSizeMake(webView.frame.size.width, webView.scrollView.contentSize.height)];

}

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [_webView reload];    //Or use meta tag

    [_webView.scrollView setContentSize: CGSizeMake([_webView.scrollView.contentSize.width, _webView.scrollView.contentSize.height)];
}

You have to add meta tag to your HTML file

<meta name="viewport" content="width=device-width" />

or simply reload the webView

[_webView reload];

try in

-(void)viewWillLayoutSubviews
{
------
}

calculate using

self.view.bounds.size.width,
self.view.bounds.size.height
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{

if(toInterfaceOrientation==UIInterfaceOrientationPortrait && toInterfaceOrientation!=UIInterfaceOrientationPortraitUpsideDown )
   {


   }
 else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation ==UIInterfaceOrientationLandscapeRight)
   {

   }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM