Webview resizes automatically to portrait and landscape view in iphone

前端 未结 2 1655
心在旅途
心在旅途 2020-12-10 07:28

I am new to iphone development.In my app, i want to display the web view in device with c portrait Orientation.It should also support landscape orientation. I used the bel

相关标签:
2条回答
  • 2020-12-10 07:44

    If you want to support any orientation then just return YES.

    - (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) orientation 
    {
        return YES;
    }
    
    0 讨论(0)
  • 2020-12-10 08:07

    I think you have set the fixed frame for webview.That will not help while implementing orientation chage

    Try This:

    Use this code for displaying the web-view.Change the stack-overflow URL with your URL;

    contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    contentView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
    self.view = contentView;
    self.view.autoresizesSubviews = YES;
    
    
    CGRect webFrame = [[UIScreen mainScreen] applicationFrame];
    webFrame.origin.y -= 20.0;
    
    webView = [[UIWebView alloc] initWithFrame:webFrame];
    
    [contentView addSubview:webView]; 
    webView.scalesPageToFit = YES;
    webView.autoresizesSubviews = YES;
    webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
    [webView setBackgroundColor:[UIColor clearColor]];
    NSString *urlAddress = @"https://www.stackoverflow.com";
    NSURL *url = [NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [webView loadRequest:requestObj];
    webView.delegate =self;
    [webView release];
    

    To support orientation

       - (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) orientation 
    {
    return YES;
    
    }
    

    For web-view change with orientation

    - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
    {
    if(fromInterfaceOrientation == UIInterfaceOrientationPortrait){
     [webView stringByEvaluatingJavaScriptFromString:@"rotate(0)"];
    
    }
    else{
        [webView stringByEvaluatingJavaScriptFromString:@"rotate(1)"];
    }
    }
    

    Hope the above will satisfy your requirement. All the best.

    0 讨论(0)
提交回复
热议问题