最近一直在糾結問題,爲何有時候被導航控制器包裝的控制器的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