UINavigationBar 最简易 hack 方案 - xiangwangfeng/xiangwangfeng.github.io GitHub Wiki

UINavigationControllerUINavigationBar 的处理其实并不够优雅,想要获得完美效果,需要做大量 hack,而这些 hack 又常会随着系统升级而被破坏。为了做这种 hack,美团甚至能够出这么一篇 2w 字的长文来描述他们的 hack 过程。。。

https://tech.meituan.com/2018/10/25/navigation-transition-solution-and-best-practice-in-meituan.html

简单需求的 hack 方案:

1.设置 navigationbar 透明

[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; [self.navigationBar setShadowImage:[UIImage new]];

2.在 nav 下的 vc 中统一添加 fakeNavigationBar 作为背景 (swizzle 完成,无需基类)

这样 hack 方案可以照顾大多数场景且保持了 applenav 的定义限制,不影响其他 view 的排版布局过程。

from : http://xuyafei.com/post/public/navigationbar