2012-10-26 47 views
3

我正在使用具有自定義背景圖像的導航欄。當我想添加自定義陰影圖像時,驚奇地發現即使是默認陰影圖像也不可見。UINavigationBar陰影何時顯示? (iOS 6)

iOS 6在UINavigationBars上引入了一個自動投影,我期望看到它。 http://www.raywenderlich.com/21703/user-interface-customization-in-ios-6的示例項目演示了這一點。

但是,從Xcode的Master-Detail模板創建一個新項目不會顯示陰影。

什麼時候顯示陰影,什麼時候沒有?

+0

你是否設法解決這個問題?我面臨同樣的問題。 – sarunw

+0

在Xcode 4.5中,我仍然有這個問題。 –

+1

我遇到了同樣的問題。顯示在一些風險投資公司,而不是其他一些。值得注意的是,我之前創建的那些(可能用Xcode 4.5)沒有顯示。任何想法?我無法重新創建它們,這聽起來對我來說很難。 –

回答

1

的解決方法,我發現半年之後,居然是尷尬的簡單:

self.navigationController.navigationBar.clipsToBounds = NO; 

此說,我仍然相信這是多麼的Xcode 4.4/4.5分鏡腳本配置導航欄的錯誤。但至少現在我們知道如何解決它。乾杯!

3

IOS 6默認顯示自動投影。如果要禁用/隱藏這個影子,你可以試試這個:

[[UINavigationBar appearance]setShadowImage:[[UIImage alloc] init]]; 

我已經注意到的是,如果我複製/從一個項目粘貼的viewController到一個新的UINavigationBar的影子(有時)它的未顯示。替換複製的viewController與一個新的解決了這個問題...(也許你的情況)

1

我有一個從iOS5升級項目,但只有在導入控制器插入iOS6以前的Xcode版本相同的問題。刪除它們並在最新版本的Xcode(4.6)中將它們替換爲新的修復了這個問題。

0

除了楊的回答,您可以創建一個類別中,以這樣的

@interface UINavigationBar (JTDropShadowFix) 

@end 

@implementation UINavigationBar (JTDropShadowFix) 

- (void)awakeFromNib { 
    self.clipsToBounds = NO; 
} 

@end 

一個全球性的修復。如果你正在尋找一個解決方案,而與該類別方法圍繞黑客,你也可以得到一篇博客文章,討論如何使用UINavigationController子類來實現相同的修復。

http://ioscodesnippet.com/post/61487770156/custom-shadow-image-on-navigation-bar-ios6-fix

0

補充一些背景:我只是把我的1歲應用Cocktailicious並在UITabBarController嵌入式根UINavigationView。之後,舊的UINavigationBar有財產剪輯子視圖在界面構建器中檢查。

在嵌入過程中,我還爲選項卡欄中的新選項卡添加了第二個導航控制器。令人驚訝的是,這個控制器附帶剪輯子視圖未選中。感覺就像一個Xcode問題。