在向状态栏添加颜色时,会在状态栏(在iOS中)下方添加额外填充

时间:2016-06-06 08:08:08

标签: ios cordova statusbar

我正在使用apache插件:“cordova-plugin-statusbar”将状态栏颜色设置为我的应用主题。

以下是更改状态栏颜色的代码段:

if(!StatusBar.isVisible){ StatusBar.show(); } StatusBar.overlaysWebView(false); StatusBar.backgroundColorByHexString(pinkColor); //pinkColor is defined

但是这会在状态栏下方添加额外的填充。

enter image description here

3 个答案:

答案 0 :(得分:0)

我从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];
}

答案 1 :(得分:0)

我有另一个替代解决方案。作为这个插件,改变" MainViewController"在每次构建之后都在XCode中很烦人。

状态栏插件包含CDVStatusBar.m

下的src/ios/文件

我已编辑-(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框架大小的变化。 我希望这可以帮助有同样问题的人。

答案 2 :(得分:0)

在离子2中的app.module.ts

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: []
})