美文网首页IOS开发iOS开发系列iOS开发
iOS 导航栏透明,变色动画

iOS 导航栏透明,变色动画

作者: Mokyz | 来源:发表于2016-01-20 08:48 被阅读17789次

iOS导航栏NavigationBar设置透明,以及添加变色的动画,类似知乎日报的导航栏。


知乎日报
透明

只需设置NavigationBar的背景图片为一张空图片即可

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsCompact];

NavigationBar下边有一个ShadowImage,也可以通过设置空的UIImage设置透明。

[self.navigationController.navigationBar setShadowImage:[UIImage new]];
变色动画

在NavigationBar下插入一个view,执行动画改变这个view的透明度即可。

CGRect frame = self.navigationController.navigationBar.frame;
alphaView = [[UIView alloc] initWithFrame:CGRectMake(0, -20, frame.size.width, frame.size.height+20)];
alphaView.backgroundColor = [UIColor blueColor];
alphaView.userInteractionEnabled = NO;
[self.navigationController.navigationBar insertSubview: alphaView atIndex:0];

就这么简单!

相关文章

  • iOS 导航栏透明,变色动画

    iOS导航栏NavigationBar设置透明,以及添加变色的动画,类似知乎日报的导航栏。 透明 只需设置Navi...

  • iOS设置导航栏透明

    设置透明 // 导航栏变为透明 // 让黑线消失的方法 变色动画 在NavigationBar下插入一...

  • iOS 导航栏、状态栏

    一、修改导航栏及状态栏的透明度 iOS 修改导航栏及状态栏的透明度 二、导航栏返回按钮靠右问题

  • UINavigationBar 下面的 黑线

    iOS之navigationBar背景 iOS之navigationBar背景 让导航栏变透明,去掉导航栏下面的线...

  • iOS 设置导航栏半透明后添加视图变化

    1.设置导航栏为不透明 2.设置导航栏为半透明 [系统默认就是半透明的]注意:iOS 导航栏如果设置为半透明,则其...

  • 迷之“导航栏”

    对于iOS 开发者来说,导航栏确实是一个让人困惑的知识点。比如设置导航栏透明效果,透明导航栏与非透明导航栏之间的跳...

  • iO 关于NavigationBar、NavigationIte

    前言:经常遇到这样的需求:从有导航栏的界面跳转到导航栏透明的界面,由于iOS从有导航栏跳转到透明导航栏界面,并且设...

  • iOSAttributeString 属性总结

    一、iOS开发中导航栏设置 1.1、导航栏透明的设置方法 //1.1.1 在具有导航栏的viewControlle...

  • iOS之导航栏详解

    导航栏作为iOS开发的一大空控件来说,是非常的重要,可以实现各种效果,隐藏,透明,简书的导航栏动画等等,这次就写一...

  • iOS源码博文集锦1

    精彩的iOS源码与博文,不容错过。 iOS精选源码 iOS一种弹出视图效果带动画 导航栏显示渐变色,类似qq一样 ...

网友评论

  • lanmoyingsheng:现在不行了
    会有默认的_UIBarBackground为白色挡住,必须设置为透明或者隐藏
    可以参考 iOS导航栏全透明 遇到的UIBarBackground问题
    https://www.jianshu.com/p/5d0ed9dae24d
    lanmoyingsheng:搞错了,是由于设置导航栏isTranslucent为false的原因:flushed:
  • 我唔知啊:谢谢,解决我的问题。
  • Felix灬泡泡:设置了[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsCompact];后,push后的页面也跟着透明了,应该怎么弄呢?
  • 11eddd582230:太暴力了
  • Caiflower:UIBarMetricsCompact 这个应该换成UIBarMetricsDefault
    Eric_1024:@Caiflower 这个对的
  • cloud_sky_z:导航栏黑了是什么情况
  • 351e3f5fd77e:好文章
  • a_victor:代码在哪里?
  • c0d06aede7e3:这种跳到下一个界面也是透明的,我原来也这么弄过,单个界面可以,但是需要跳转我就换了其他方法
    上冬十二:@risingTan 同问,你换成什么了
    Yanni_L:@risingTan 那你换成什么样的方法了
  • Apples8023:楼主,有没有swift版本的啊,跪求啊
  • loghm:我设置变成透明之后,还是有黑线怎么办?
    d15eb9289fc7:同求,还有最后一块代码,没有用。。
    dapeng199:为何添加了这句代码以后黑色线还存在,请大神指教?
    gh_coder:@tangw 设置阴影[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]]
  • dong_liang:这么设置后push后导航栏还是透明的,怎么改成push后变为不透明的啊
  • UItachi:navigation bar设置为透明,应该会改变self.view.frame的改变。
    奋斗的DevAmos:@UItachi 不会改变frame的大小,只有在bar隐藏的时候才会改变frame的大小
  • 480a52903ce5:^_^以吸收
  • JanzTam:虽然实现过程有点那个啥,但是思路挺好的
  • 溪枫狼:必须要把这个view的交互关掉,不然push到下一界面后导航栏的按钮不会响应事件,被这行代码坑了一个上午,都没想明白为什么要这么做,而且只能插在index=0的位置,插在1的位置就会出问题。。还有种思路是在状态栏下面加个20高度的view,然后跟bar一起设置颜色。
    maretell:@溪枫狼 有demo吗?
    vernepung:@溪枫狼 我的做法是把这个你添加的View临时记下俩,Push或者Pop的时候(viewwilldisappear)的时候从navigationBar中remove,并把Nav还原为App的默认样式。
    Mokyz:@溪枫狼 对,要把交互关掉,感谢提醒。还有bar的下边还有一张阴影图片,也可以设置一张空图去掉。
  • 389c20d5a244:不错,方法很简单实用,在我的思路里都是隐藏,然后创建一个view。
    Mokyz:@WzxJiang 😊能实现效果就行,嘿嘿

本文标题:iOS 导航栏透明,变色动画

本文链接:https://www.haomeiwen.com/subject/qoqlkttx.html