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

Posted

技术标签:

【中文标题】向状态栏添加颜色时,在状态栏下方添加额外的填充(在 iOS 中)【英文标题】:Extra padding is added below status-bar (in iOS) when adding color to status bar 【发布时间】:2016-10-05 18:22:04 【问题描述】:

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

以下是更改状态栏颜色的代码sn-p:

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

我有另一个替代解决方案。作为一个插件,每次构建后在 XCode 中更改“MainViewController”是很烦人的。

状态栏插件包含CDVStatusBar.msrc/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 框架大小的变化。 我希望这可以帮助遇到同样问题的人。

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于向状态栏添加颜色时,在状态栏下方添加额外的填充(在 iOS 中)的主要内容,如果未能解决你的问题,请参考以下文章

自动布局添加额外的填充

应用程序处于后台时状态栏下方的 IOS 文本

使用 Material iOS 在状态栏下方添加标签栏

需要向菜单栏添加一个额外的部分,但代码不会改变它

在odoo 10中为状态栏添加颜色

Python OpenCV - 添加状态栏以显示鼠标位置和颜色 RGB