当看到呼叫/热点指示符时,停止电话空白应用程序滚动

时间:2014-03-27 19:57:37

标签: javascript ios css cordova

我正在使用phonegap开发iOS应用。用户界面包含许多水平布局的包装器,每个包装器都在视口高度的100%处。

<html>
  <body>
    <div id="wrapper-one"></div>
    <div id="wrapper-two"></div>
    <div id="wrapper-three"</div>
  </body>
</body>

htmlbody#wrapper-*元素都在CSS中声明了height: 100%,效果很好,并且停止了应用滚动。

问题是,当打电话时#39;或者个人热点&#39;指示器可见,它们将视口的高度减少大约20px。然后,这会将页面底部稍微推离屏幕,您可以向上和向下滚动。正文中的包装器div是可滚动的,所以我也不希望窗口也可以滚动。

当这些指示器可见时,有什么方法可以阻止滚动发生,就像我只有普通状态栏可见时一样?

2 个答案:

答案 0 :(得分:0)

您应该能够检测到窗口调整大小并处理它。

window.onresize = function() {
    //820 just an example height
    if (window.innerHeight >= 820) {
        // Do something
    }
}

答案 1 :(得分:0)

在MainViewController @implementation之后和@end之前,将此代码放在MainViewController.m中。

- (void)viewDidLayoutSubviews{

    if ([self respondsToSelector:@selector(topLayoutGuide)]) // iOS 7 or above
    {
        CGFloat top = self.topLayoutGuide.length;
        if(self.webView.frame.origin.y == 0){
            // We only want to do this once, or if the view has somehow been "restored" by other code.
            self.webView.frame = CGRectMake(self.webView.frame.origin.x, self.webView.frame.origin.y + top, self.webView.frame.size.width, self.webView.frame.size.height - top);
        }
    }
}