從 iOS 6 開始, navigation bar 最下方都有一條陰影。
在 iOS 6 上我都是使用偷吃步來處理,用 320*45px 的圖片蓋住1px的陰影。
1 | [ self .navigationController.navigationBar setBackgroundImage:[UIImage imageNamed: @"header.png" ] forBarMetrics:UIBarMetricsDefault]; |
到了 iOS 7 上發現陰影永遠都在最上層,我把圖片改成 320*64px ( 多出的 20px 是 status bar),第一行方法名稱也換了。
1 2 | [ self .navigationController.navigationBar setBackgroundImage:[UIImage imageNamed: @"headerIos7.png" ] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault]; [ self .navigationController.navigationBar setShadowImage:[UIImage new ]]; |
這方法不適用於 setBackgroundColor ,因為 setShadowImage 似乎要與 setBackgroundImage 一起使用。