向状态栏添加颜色时,会在状态栏下方(在 iOS 中)添加额外的填充
Extra padding is added below status-bar (in iOS) when adding color to status bar
我正在使用 apache 插件:"cordova-plugin-statusbar" 将状态栏着色为我的应用程序主题。
以下是更改状态栏颜色的代码片段:
if(!StatusBar.isVisible){
StatusBar.show();
}
StatusBar.overlaysWebView(false);
StatusBar.backgroundColorByHexString(pinkColor); //pinkColor is defined
但这会在状态栏下方添加一个额外的填充。
我从 status bar overlapping the view 中获取了解决方案并根据我的要求进行了更改
我修改了 "MainViewController.m" 的“(void)viewWillAppear”:
- (void)viewWillAppear:(BOOL)animated
{
// View defaults to full size. If you want to customize the view's size, or its subviews (e.g. webView),
// you can do so here.
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
CGRect viewBounds = [self.webView bounds];
viewBounds.size.height = viewBounds.size.height + 20;
self.webView.frame = viewBounds;
}
[super viewWillAppear:animated];
}
我有另一个替代解决方案。因为这是一个插件,每次构建后在 XCode 中更改 "MainViewController" 很烦人。
状态栏插件在 src/ios/
下包含 CDVStatusBar.m
文件
我编辑了 -(void)resizeWebView
:
if (!self.statusBarOverlaysWebView) {
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
statusBarFrame = [self invertFrameIfNeeded:statusBarFrame];
CGRect frame = self.webView.frame;
// frame.origin.y = statusBarFrame.size.height;
// frame.size.height -= statusBarFrame.size.height;
self.webView.frame = frame;
}
我已经注释掉 WebView 框架大小的变化。
我希望这对遇到同样问题的人有所帮助。
在 app.module.ts 在离子 2
remove mode: 'md' in ios
import { IonicApp, IonicModule } from 'ionic-angular';
@NgModule({
declarations: [ MyApp ],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp, {
mode:md
}, {}
)],
bootstrap: [IonicApp],
entryComponents: [ MyApp ],
providers: []
})
我正在使用 apache 插件:"cordova-plugin-statusbar" 将状态栏着色为我的应用程序主题。
以下是更改状态栏颜色的代码片段:
if(!StatusBar.isVisible){
StatusBar.show();
}
StatusBar.overlaysWebView(false);
StatusBar.backgroundColorByHexString(pinkColor); //pinkColor is defined
但这会在状态栏下方添加一个额外的填充。
我从 status bar overlapping the view 中获取了解决方案并根据我的要求进行了更改
我修改了 "MainViewController.m" 的“(void)viewWillAppear”:
- (void)viewWillAppear:(BOOL)animated
{
// View defaults to full size. If you want to customize the view's size, or its subviews (e.g. webView),
// you can do so here.
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
CGRect viewBounds = [self.webView bounds];
viewBounds.size.height = viewBounds.size.height + 20;
self.webView.frame = viewBounds;
}
[super viewWillAppear:animated];
}
我有另一个替代解决方案。因为这是一个插件,每次构建后在 XCode 中更改 "MainViewController" 很烦人。
状态栏插件在 src/ios/
CDVStatusBar.m
文件
我编辑了 -(void)resizeWebView
:
if (!self.statusBarOverlaysWebView) {
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
statusBarFrame = [self invertFrameIfNeeded:statusBarFrame];
CGRect frame = self.webView.frame;
// frame.origin.y = statusBarFrame.size.height;
// frame.size.height -= statusBarFrame.size.height;
self.webView.frame = frame;
}
我已经注释掉 WebView 框架大小的变化。 我希望这对遇到同样问题的人有所帮助。
在 app.module.ts 在离子 2
remove mode: 'md' in ios
import { IonicApp, IonicModule } from 'ionic-angular';
@NgModule({
declarations: [ MyApp ],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp, {
mode:md
}, {}
)],
bootstrap: [IonicApp],
entryComponents: [ MyApp ],
providers: []
})