被导航控制器包装的控制器的View的y值问题

最近一直在纠结问题,为何有时候被导航控制器包装的控制器的View的y值有时候是64,有时候是0,以为很奇怪,因而研究了一下,发现有个属性能够改变View的y值,那就是translucent(属于导航栏的)这个属性能够设置y值,这个属性的做用是用来设置导航栏是否半透明,默认值为Yes(半透明效果),为NO则不透明,下图展现了一下Yes和No的区别:app

 

要想禁用translucent属性,能够在Storyboard中选中导航栏,而后在Attribute Inspectors中,取消translucent的勾选,或者直接导航栏的这个属性为NO。当translucent为NO是,当前导航控制器所包装的控制器的View的y值为64,反之为0,有些人会以为奇怪,我没设置translucent=NO,只是用一个图片做为它的背景,而后View的y值就变成了64,spa

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav_bg.png"] forBarMetrics:UIBarMetricsDefault];图片

 

实际上是你设置了图片以后,系统自动帮你把translucent那个属性的值设置成了NO,因此那个控制器的y值变成了64.string

相关文章
相关标签/搜索