UINavigationBar 最简易 hack 方案 - xiangwangfeng/xiangwangfeng.github.io GitHub Wiki
UINavigationController
对 UINavigationBar
的处理其实并不够优雅,想要获得完美效果,需要做大量 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
方案可以照顾大多数场景且保持了 apple
对 nav
的定义限制,不影响其他 view
的排版布局过程。