UIWebView 屏幕适配问题

UIWebView Screen Fitting Issue

我在 Twitter Bootstrap 开发了一个网站,我现在使用 UIWebView 在 IOS 应用程序中显示该网站。我让它显示正常,但屏幕关闭并且它 运行 离开屏幕的一侧......我觉得我的 UIWebView 配置可能有误,如果我去它在我的移动设备上的 Safari 中,所以我知道该网站工作正常。

它甚至在 UIWebView 中显示 Google 错误....我将在下面显示我的代码和 2 个屏幕截图(第一个屏幕截图是它当前的样子,第二个是它应该的样子以及它在 safari mobile 中的样子:

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (strong, nonatomic) IBOutlet UIWebView *webView;

@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];

[_webView loadRequest:request];
_webView.scalesPageToFit = YES;
_webView.frame=self.view.bounds;

[_webView loadRequest:request];
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end

原样屏幕截图

待定屏幕截图

您应该在 [_webView loadRequest:request]; 之后添加以下代码:

_webView.scalesPageToFit = YES;

如果您的 UIWebView 位置不正确,请添加以下代码:

_webView.frame=self.view.bounds;

在我看来,UIWebView 在 Storyboard 或 Interface Builder 中的设置似乎不正确。你用Auto Layout吗?如果是,约束设置是否正确?

确保 UIWebView 全屏显示的一种简单方法是添加 4 个约束,使其与其父视图的顶部、底部、前导和尾部边缘对齐,例如像这样:

编辑:Here are some rough instructions 关于如何添加这些约束。

在“实用程序”窗格中,select "Scales Pages to Fit":

在 Web 视图所在的视图控制器中,确保您可以查看视图的框(或边界)(注意:底部没有出现,因为我无法将其放入图像中) :

视图控制器中的代码:

#import "SomeViewController.h"

@interface SomeViewController ()

@end

@implementation SomeViewController
@synthesize webView;

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    NSString *urlLink = @"www.google.com";
    NSURL *url = [NSURL URLWithString:urlLink];
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
    [self.webview loadRequest:urlRequest];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

视图控制器中其他设置的图片:

不需要两次使用loadRequest:,使用:

- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    [_webView reload];
}