UIWebView横向旋转不填充视图

时间:2012-07-08 23:10:28

标签: iphone ios uiwebview uiinterfaceorientation

我的UIWebView存在问题。当视图加载时,它会以任意方向加载,完美填充整个页面等。

然而,如果我以纵向加载它然后旋转设备,webview不会一直填充到右侧,我不能为我的生活找出原因。

这是我的观点做了加载方法

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib

    if  ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait){

        self.measurementsWebView.frame = CGRectMake(0, 0, 320, 367);

    }else if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeLeft || [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight){

        self.measurementsWebView.frame = CGRectMake(0, 0, 480, 218);
    }

    NSString *path = [[NSBundle mainBundle] pathForResource:@"measurements" ofType:@"png"];
    [measurementsWebView loadHTMLString:[NSString stringWithFormat:@"<html><body><img src=\"file://%@\"></body></html>",path] baseURL:nil];
    measurementsWebView.scalesPageToFit = YES;

}

如果我查看界面构建器,我正在尝试找到允许我设置扩展宽度的面板或者你所谓的它,但我只能看到这一点。

enter image description here

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:4)

您也可以将自动调整大小的蒙版设置为:

,而不是手动设置框架

measurementsWebView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

如果您在屏幕上没有其他元素(我认为,您从调整大小measurementsWebView时使用的值中删除了它们),它将调整webView的大小。或者,直接从笔尖,如下图所示:

auto-resize from nib

可以通过单击左下方名为自动调整大小的框中的红色条来设置蒙版。

答案 1 :(得分:3)

运行一次

viewDidLoad - 视图加载时。

如果要在旋转发生时手动调整帧,请添加代码以在viewDidLayoutSubviews中调整大小,只要视图旋转,就会调用它。

-(void)viewDidLayoutSubviews {

    [super viewDidLayoutSubviews];

    self.measurementsWebView.frame = self.view.bounds;

}

答案 2 :(得分:1)

在界面构建器的下拉菜单中,显示“布局矩形”,单击它并选择“框架矩形”。

或者,您可以覆盖视图控制器中的willAnimateRotationToInterfaceOrientation:方法,并像在viewDidLoad中一样手动设置坐标/大小。