我最近升级到xcode 5,当我在iOS模拟器中运行我的应用程序时,启动画面与状态栏重叠,当你在应用程序中时状态栏重叠到我的应用程序上的元素,就像我左上角的后退按钮我的应用程序的一角.我使用phonegap 2.9构建我的应用程序.任何想法如何让我正确渲染.


我们有一个基本上有一个UIWebView的应用程序,在XCode中设置为"iPhone App".
到目前为止一切工作正常,但使用iOS 7 iPad模拟器,应用程序现在立即显示在"全屏",这不会是问题,但WebView似乎也放大了.
我只看到加载的网站的右上角1/4,必须滚动查看其余部分.
我们在应用程序中使用jQuery mobile 1.3.1.
编辑
我发现了错误.看来,视口元元素的语义在iOS版本之间发生了变化.
更改
<meta name="viewport" content="width=device-width, initial-scale=1">
Run Code Online (Sandbox Code Playgroud)
至
<meta name="viewport" content="initial-scale=1">
Run Code Online (Sandbox Code Playgroud)
为我工作,但我不确定这是否是要走的路,因为jQuery Mobile Demo Page确实将设置为设备.当我从UIWebView加载Demo-Page时,我得到了同样的效果.
是否有关于设置视口的"正确方法"的信息,特别是因为演示页面使用width = device-width
使用Phonegap Build 3.1时是否可以摆脱iOS7中的状态栏?我可以在Xcode中本地构建时删除状态栏,但是一旦我尝试Phonegap Build,它就会再次返回.
我不希望状态栏按下应用程序视图20px,这就是现在的情况.
我正在构建一个Cordova应用程序,我正在我的iOS 6设备(iPod Touch w/iOS 6.1.6)上进行测试.出于某种原因,WebView可以滚动额外的20px,似乎弥补了屏幕顶部的20px状态栏.这有时会导致可滚动的WebView获得焦点,实际上导致"无"在用户眼中滚动,而不是允许div我的应用程序中的可滚动s滚动.我尝试了很多与config.xml更改,插件等有关的修复,但没有什么区别,我在下面概述了.
尝试手动隐藏状态栏,没有任何效果.
// config.xml:
<plugin name="org.apache.cordova.statusbar" version="0.1.7" />
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" />
</feature>
// index.js (ondeviceready):
window.StatusBar && window.StatusBar.hide();
Run Code Online (Sandbox Code Playgroud)尝试强制状态栏覆盖webview,实际上使应用程序整个480px高(而不是460px):
// config.xml:
<plugin name="org.apache.cordova.statusbar" version="0.1.7" />
<preference name="StatusBarOverlaysWebView" value="true" />
Run Code Online (Sandbox Code Playgroud)试图强制状态栏不覆盖webview:
// config.xml:
<plugin name="org.apache.cordova.statusbar" version="0.1.7" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarBackgroundColor" value="#000000" />
<preference name="StatusBarStyle" value="lightcontent" />
Run Code Online (Sandbox Code Playgroud)试图将身体的边缘顶部偏移20px,这只会增加额外20px的死空白:
// index.css:
body {
margin-top: 20px;
}
Run Code Online (Sandbox Code Playgroud)尝试将应用程序设置为全屏,这对应用程序无论如何都没有影响:
// config.xml:
<preference name="Fullscreen" value="true" />
Run Code Online (Sandbox Code Playgroud)我甚至使用Safari检查 …
我正在写一个Phonegap 3.0+应用程序.
在iOS7中状态栏重叠视图存在问题,用户Ludwig Kristoffersson在此提供了一个有效的答案
现在我的UIWebView具有20px的上边距,如何更改UIWebView背景颜色?我需要状态栏后面的区域与"人物"工具栏的背景颜色相同.

我几乎没有Objective C的经验,并且一直在寻找可能的SO问题来找到一个有效的解决方案,但没有成功.
UIWebView背景颜色
UIWebView背景设置为Clear Color,但它不透明
下面是我到目前为止尝试过的代码:
- (void)viewWillAppear:(BOOL)animated {
//Lower screen 20px on ios 7
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
CGRect viewBounds = [self.webView bounds];
viewBounds.origin.y = 20;
viewBounds.size.height = viewBounds.size.height - 20;
self.webView.frame = viewBounds;
[self.webView setOpaque:YES];
//neither of these seem to work when uncommented:
// [self.webView setBackgroundColor:[UIColor grayColor]];
// self.webView.backgroundColor=[UIColor grayColor];
}
[super viewWillAppear:animated];
}
Run Code Online (Sandbox Code Playgroud)
更新1
- (void)viewWillAppear:(BOOL)animated
{
//Lower screen 20px on ios 7
if ([[[UIDevice currentDevice] systemVersion] floatValue] …Run Code Online (Sandbox Code Playgroud) 我添加了https://github.com/apache/cordova-plugin-statusbar插件.现在设置
<preference name="StatusBarOverlaysWebView" value="false" />
Run Code Online (Sandbox Code Playgroud)
仍然不起作用(假和真)并且它总是在IOS 7中重叠.但是设置
<preference name="StatusBarStyle" value="lightcontent" />
Run Code Online (Sandbox Code Playgroud)
工作正常,我可以使用不同的状态栏颜色.所以对我来说,看起来这个插件基本上是可行的.有人是我做错的理想吗?
谢谢!干杯