神奇的navigationBar.translucent

初步实践所得:
当translucent属性为YES的时候,vc的view的坐标从导航栏的左上角开始;
当translucent属性为NO的时候,vc的view的坐标从导航栏的左下角开始;
 
深入探究:
 
内容简要摘要:
(一)非滚动实图
从iOS7以后,默认为YES。
为YES时,view从(0,0)点开始;
为NO时,view从(0,64)点开始。
 
(二)滚动视图
tableview加在view上面,坐标为(0,0,屏宽,屏高)。
 
当为YES时,view的起点从(0,0)开始,tableview的起点从view的(0,0)点开始,但是tableview的内容向下偏移了64,这就是特性。
当然,也可以让这种特性消失,tableview有一个特有的属性,automaticallyAdjustsScrollViewInsets,默认为YES,滚动试图会默认进行调整,如果设置为NO,则不进行自动调整。
 
当为NO时,view的起点从(0,64)开始,tableview的起点从view的(0,0)点开始,nav的透明效果没有了,变为纯白色。这样如果增加侧滑手势的话,就会导致上面的navigationBar消失,显示后面的黑色背景,这显然不是我们想要的。
 
【总结】当我们使用滚动视图的时候,建议不要修改translucent属性,就是系统默认的YES。
 
【类似属性】
设置self.edgesForExtendedLayout = UIRectEdgeNone;控制器的view也会变成从(0,64)开始。这样做nav会变得略黑色,目测是背面window的颜色。 
原文地址:https://www.cnblogs.com/cchHers/p/8712082.html