仿QQ空间滑动返回渐变导航栏

很遗憾, 只有iOS10才管用, 心累. 果然黑科技不靠谱.(17-10-26)

很久之前就开始打QQ的导航栏的主意, 这大概是我心中最完美的导航栏了. 百度过N多次也并没有找到相关的实现. QQ导航栏效果如下:

QQ导航栏.PNG

仔细观察的话, UINavigationBar上面的titleView也是可以渐变的, 所以我想或许可以在原生的导航栏的基础上做修改可以实现这样的效果.

经过艰苦奋斗最终实现效果如下:


最终实现效果.gif

不仅可以渐变, 而且每一个viewController的导航栏都可以单独设置颜色😁. 仔细观察的话会发现原生导航栏和QQ的导航栏在titleView和返回按钮的处理上是不一样的, 我也是做出这个之后才发现, 所以结论就是: QQ的导航栏是自定义的_.

关于我的实现方法并有什么可讲的, 只是仔细研(cai)究(ce) 原生导航栏的组成以及层次, 上天保佑🙏, 刚好有我需要的并且成功找到了. 简单来说就是黑科技. 比如这样的代码:

if ([view2 isKindOfClass:NSClassFromString(@"_UIVisualEffectBackdropView")]) {
   view2.hidden = true;
}

这种依赖不稳定细节的方法完全不值得学习, 鬼知道苹果工程师哪天不开心会悄悄给navigationBar那些没有暴露的子view换一个类名.

所以写这个文章其实就是想告诉大家: 我™的做出来啦!!!

最后是最最重要的代码: https://github.com/Yanyinghenmei/GradientNavigationBar

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,080评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,602评论 4 61
  • swift的protocol可以被class,struct,enum类型实现,如果没在协议的方法里写mutatin...
    言己言阅读 1,423评论 0 0
  • 上一篇:今夜,我本无眠 http://www.jianshu.com/p/f71125abc3c3 明天我要去远行...
    大麦大麦阅读 4,442评论 1 2
  • 今天是儿童节,虽已不再是儿童,但儿时记忆永远挥之不去。记忆中的父母对我永远是包容和称赞,做错了事几乎没有打骂过...
    别看我的心阅读 2,828评论 0 1

友情链接更多精彩内容