NavigationBar的隐藏与显示
最近在使用UINavigationView时,rootViewController设置多个子UIView进行切换,发现只有最先显示的UIView能正常显示,通过切换显示的UIView的布局向上偏移了64px,导致部分内容被NavigationBar给遮挡了。
【NavigationBar的隐藏与显示】通过查询相关资料才发现iOS6中默认的布局将从navigation bar的底部开始,但到了iOS7中默认布局从navigation bar的顶部开始,这就是为什么所有的UI元素都往上漂移了。
通常有两种解决方案:
1.设置NavigationBar的透明度为NO.
navigationBarApperance.translucent=NO;
2.设置NavigationBar的backgroundImage.
[navigationBarApperance setBackgroundImage:[UIImage imageWithColor:kColorNavBG] forBarMetrics:UIBarMetricsDefault];
还有一种方案是在rootViewController的ViewDidLoad方法中设置:
self.edgesForExtendedLayout=UIRectEdgeNone;
edgesForExtendedLayout是一个类型为UIExtendedEdge的属性,指定边缘要延伸的方向,它的默认值是UIRectEdgeAll,即视图向容器四周延伸。
推荐阅读
- 一个悲情的故事
- 你的收入是什么因素来决定的()
- C++|C++ IO流_数据的旅行之路
- 为什么基于树的模型在表格数据上仍然优于深度学习
- 消费|鸭脖卤味卖不动,不是年轻人的错
- 消费|从爆火到退房潮,我见证三亚最仓促的旺季
- 【连载】朕的皇后是将军(6)
- 父亲
- Android插件化与热修复(五)---DroidPlugin|Android插件化与热修复(五)---DroidPlugin 四大组件的插件化
- 创新工场|创新工场 · 李开复(我与35位CEO硅谷游学的感悟)