iOS7扁平化的设计推出了导航栏自带“毛玻璃”模糊的效果,看起来确实比之前的好看了很多。由于毛玻璃带来的特殊效果会使得你之前的布局有所打乱,像如下这样的代码:
我们创建一个view放置在控制器的view上,我们想要的效果应该是红色view紧贴着导航栏,但实际上并不是,实际的效果如下:
红色的view从最顶部开始布局了,这并不是我们想要的,我们是想他从导航栏下面开始布局。这里需要注意并不是我们红色的view布局有问题而是底部的控制器的view布局产生了偏差。我们打开层级看一下:
可以看到我们控制器的view就是从最顶部开始布局的,并没有因为导航栏的存在而下移。对这一点来说我个人觉得原因如下:
毛玻璃虽然产生了半透明的效果,但并没有完全遮挡后面的内容,所以官方可能觉得并不需要下移你的view因为并未完全遮挡到。
但我们的布局会受到毛玻璃的影响,你需要让你控制器的view下调64个高度以适应这个影响。
如果你觉得毛玻璃这个效果并没有什么用反而会影响你原来的布局,那么就手动关闭它。
self.navigationController.navigationBar.translucent = NO;
我们来看下关闭后的效果:
我们可以看到控制器的view自动下调了64个高度,这样一来我们的布局就正常了。
一般来说出于习惯我们都会把毛玻璃效果关闭,符合平时的习惯而且自己也可以去做一些特殊的效果,这个在第四篇细说。