在(iPhone)UIWebView横向方向填充宽度?

时间:2009-02-15 21:11:04

标签: iphone interface-builder uiwebview landscape

我正在使用带有文本的UIWebView。当iPhone旋转到横向时,文本不会填充现在更宽的UIWebView宽度。我正在使用P(段落)标签,这不应该影响内容填充景观的宽度。在纵向中可见的换行符在横向上保持不变。在Interface Builder中,我没有改变任何东西。在IB检查器中,Web视图大小在AutoSizing下有所有实心条,这意味着它应该填充到横向宽度吗?

4 个答案:

答案 0 :(得分:2)

这是一个调整虽然不是一件好事,但苹果本身应该处理一些事情

正如您已经注意到,当WebView以纵向方式初始化然后您将其转换为横向时,工作正常。所以..你可以做的是始终用纵向边界初始化你的webview,添加一个选择器,在2~3秒后回调,并根据你的要求设置webView的框架。

现在,当webview的帧大小是根据肖像(例如320,460)开始加载内容时,如果您的代码中有此行,则将您的webview转换为横向将自动调整您的Web视图

[webViewObjet_ setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];

以下是代码片段

- (id) initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame])
    {
        webViewObjet_ = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
        .....
    }
}

- (void) webViewDidStartLoad:(UIWebView *)webView
{
    .....       
    [self performSelector:@selector(chuss) withObject:nil afterDelay:3];
    // call the function chuss after 3 second
}

- (void) chuss
{
    webViewObjet_.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
    [webViewObjet setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
}

答案 1 :(得分:1)

现在尝试了同样的问题,最后看了详细的“WhichWayIsUp” - 来自Apple的示例。

保持简短:

1)在视图检查器中禁用| - |和< - >

2)`将视图模式从Webview切换到“Aspect Fill”

Et瞧瞧;)

保持共鸣, 狂

答案 2 :(得分:0)

我有同样的问题。重新加载不起作用,唯一似乎有点帮助的是在代码中添加以下行:

  

self.view.autoresizingMask =   UIViewAutoresizingFlexibleWidth;

(我把它放在willAnimateFirstHalfOfRotationToInterfaceOrientation函数中)

它仍然在右边保持一个小的白色边距,但它远远优于默认值。注意:您应该在self.view上应用它,而不是在UIWebView实例上应用它,这将无效。

等待Apple的解决方案..

彼得

答案 3 :(得分:0)

这听起来很奇怪,但确实有效:

如果UIWebView在UINavigationController中,它将全部正常工作。我有同样的问题,所以我把它包装在UINavigationController中,问题就消失了。

出于某种原因,UINavigationController使旋转工作就像魅力一样。