今天看到有人在群里問到給導(dǎo)航欄設(shè)置背景圖片后,子視圖的布局都是從導(dǎo)航欄的底部開始布局,但是當(dāng)我親身測試的時候,卻沒有發(fā)現(xiàn)這個問題,還是從0點開始布局,我就問了當(dāng)時我出現(xiàn)問題的同學(xué),他說他是用純代碼寫的,我改用純代碼后發(fā)現(xiàn)是那位同學(xué)描述的那樣從導(dǎo)航欄的底部開始布局,但是為什么storyboard不是這樣啦.最后我打開有storyboard的工程查找原因最終我找到了這樣一個東西:

默認(rèn)是勾選的,先看一下勾選的效果.

再看去掉勾選的效果

剛才我們?nèi)サ艄催x的屬性是對應(yīng)純代碼中的edgesForExtendedLayout這個屬性,sb是默認(rèn)勾選的所以會發(fā)生從0點開始布局,當(dāng)我們?nèi)サ艄催x就正常了.
純代碼可以修改這個屬性來影響布局.
好了問題也搞清楚了.就不多說了.
設(shè)置導(dǎo)航欄透明:
[self.navigationController.navigationBarsetBackgroundImage:[UIImagenew]forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBarsetShadowImage:[UIImagenew]];
如果喜歡小編,可以點擊關(guān)注,我會不定期的更新一些文章,也可以關(guān)注我的專題
本人聯(lián)系方式:qq:513961360
email:513961360@qq.com
也可以加我們的qq群希望能與朋友們一起聊天和學(xué)習(xí).群里還有很多iOS開發(fā)者,幫助我們解決問題,并且同時學(xué)習(xí).
qq群號:580284575