有时候我们需要设置UINavigationController的导航条NavigationBar的颜色为透明度,这时候就需要使用到NavigationBar的barStyle这个属性: 再看QQ空间的仿制项目示例: 代码使用示例:nc.navigationBar



有时候我们需要设置UINavigationController的导航条NavigationBar的颜色为透明度,这时候就需要使用到NavigationBar的barStyle这个属性:
      IOS设置NavigationBar的颜色以及透明度

再看QQ空间的仿制项目示例:

               IOS设置NavigationBar的颜色以及透明度


代码使用示例:nc.navigationBar.barStyle = UIBarStyleDefault;
<备注:下面全部展示的UI图例,window.view背景是绿色的>


一、在没有设置背景图片的情况下:


1、UIBarStyleDefaul
因为是默认,所以可以不设置barStyle这个属性。
  IOS设置NavigationBar的颜色以及透明度
2、UIBarStyleBlack
3、UIBarStyleBlackOpaque
4、UIBarStyleBlackTranslucent(Translucent半透明)
 这里2~4都是一样的:

  IOS设置NavigationBar的颜色以及透明度


二、将1X1的透明图片或者是空UIImage对象(建议直接使用UIImage对象,连图片都不需要了),设置为背景

  代码实例:

    IOS设置NavigationBar的颜色以及透明度

  当然,还有一个前提需要提出来:一下实例图都是没有添加下面字段的(XCode 7.2.1版本)

    IOS设置NavigationBar的颜色以及透明度
1、UIBarStyleDefaul
  IOS设置NavigationBar的颜色以及透明度
2、UIBarStyleBlack
3、UIBarStyleBlackOpaque
4、UIBarStyleBlackTranslucent(Translucent半透明)

 这里2~4都是一样的:
  IOS设置NavigationBar的颜色以及透明度

三、将1X1的全黑色的图片,设置为背景


1、UIBarStyleDefaul
  IOS设置NavigationBar的颜色以及透明度
2、UIBarStyleBlack
3、UIBarStyleBlackOpaque
4、UIBarStyleBlackTranslucent(Translucent半透明)
 这里2~4都是一样的:

    IOS设置NavigationBar的颜色以及透明度

四、将1X1的红色的图片,设置为背景

1、UIBarStyleDefaul
  IOS设置NavigationBar的颜色以及透明度
2、UIBarStyleBlack
3、UIBarStyleBlackOpaque
4、UIBarStyleBlackTranslucent(Translucent半透明)

  1.  这里2~4都是一样的:

  IOS设置NavigationBar的颜色以及透明度

 

附:遇到的还没有解决的问题:

  因为我看到QQ空间的导航控制器和状态栏是能够连在一起同时会渐变颜色,所以就讲上面通过图片设置背景换成直接更改导航条UINavigationBar的背景颜色试了试;

  我就添加了一行代码:

  IOS设置NavigationBar的颜色以及透明度

  效果却是这样的:

  IOS设置NavigationBar的颜色以及透明度

  然后我试了试默认不设置背景UIImage对象或者是不设置背景透明的图片:

  IOS设置NavigationBar的颜色以及透明度

  效果更加不好看了:

  IOS设置NavigationBar的颜色以及透明度

 

解决思路:

  我不知道QQ空间是怎么做到的,但是我下面会给出三种思路,其中两种思路会有具体实现。如果有哪位大神有更好的想法,欢迎交流,切磋切磋。

  这里展示一个出问题的效果,下面就针对这个情况进行解决问题:

  IOS设置NavigationBar的颜色以及透明度

思路1、自定义一个UINavigationBar,替换调用原来的自带的UINavigationBar。

相关文章:

  • 2022-12-23
  • 2021-08-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-25
  • 2022-12-23
  • 2021-12-12
猜你喜欢
  • 2022-12-23
  • 2021-09-06
  • 2022-12-23
  • 2021-12-16
  • 2022-12-23
  • 2021-07-31
  • 2021-12-06
相关资源
相似解决方案