2012-03-29 4 views
1

UINavigationバーにシャドーを追加する方法を示すチュートリアルはありますが、単一のインスタンスではなく、このシャドウアプリケーションを追加するのに最適な方法はありますか?UINavigationBar Shadow Application Wideを追加しますか?

または、私のアプリケーションのすべての単一のビューにサブクラスのナブバーを置くだけの唯一のオプションはありますか?それより速く、簡単な方法があるかもしれないと思った?

ありがとうございました。

答えて

5

あなたはiOS6で作業している場合は、あなたがそれを行うために外観プロキシを使用することができますUINavigationBar+dropshadow.mと呼ばれるUINavigationBarのカテゴリを作成し、ファイルに

#import <QuartzCore/QuartzCore.h> 

@interface UINavigationBar (dropshadow) 

-(void) applyDefaultStyle; 

@end 

@implementation UINavigationBar (dropshadow) 

-(void)willMoveToWindow:(UIWindow *)newWindow{ 
    [super willMoveToWindow:newWindow]; 
    [self applyDefaultStyle]; 
} 

- (void)applyDefaultStyle { 
    // add the drop shadow 
    self.layer.shadowColor = [[UIColor blackColor] CGColor]; 
    self.layer.shadowOffset = CGSizeMake(0.0, 3.0); 
    self.layer.shadowOpacity = 0.25; 
    self.layer.shouldRasterize = YES; 
} 
@end 
+1

self.clipsToBounds = NO;必要ですが、本当にうまくいった、ありがとう! –

+0

カテゴリの(自動)回転の問題をどのように解決しますか? – DrMickeyLauer

0

これを置きます。

ここでアップルクラスリファレンスです:コードスニペット用Appearance proxy - setShadowImage alternative for iOS 5?

:1は固定 http://developer.apple.com/library/ios/#documentation/uikit/reference/UIAppearance_Protocol/Reference/Reference.html

EDITは、iOSのバージョン(以前に誤っiOS5をした)

EDIT 2 このSOの質問を参照してくださいする必要

+0

コードサンプルが素晴らしいです... UIAppearanceプロキシを使用してナビゲーションバーに影を追加する方法を見つけることができませんでした... –

+0

私は申し訳ありませんが、私はコードスニペットを私の役職。 また、私はちょうど私がそれを切り替えたことに気付きました。プロキシがiOS5ではなく、シャドウで動作するためにiOS6が必要です。 修正済みです。フィードバックありがとうございます。 – JiaYow

関連する問題