我正在使用phonegap开发iOS应用。用户界面包含许多水平布局的包装器,每个包装器都在视口高度的100%处。
<html>
<body>
<div id="wrapper-one"></div>
<div id="wrapper-two"></div>
<div id="wrapper-three"</div>
</body>
</body>
html
,body
和#wrapper-*
元素都在CSS中声明了height: 100%
,效果很好,并且停止了应用滚动。
问题是,当打电话时#39;或者个人热点&#39;指示器可见,它们将视口的高度减少大约20px。然后,这会将页面底部稍微推离屏幕,您可以向上和向下滚动。正文中的包装器div是可滚动的,所以我也不希望窗口也可以滚动。
当这些指示器可见时,有什么方法可以阻止滚动发生,就像我只有普通状态栏可见时一样?
答案 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);
}
}
}