2013-10-07 154 views
0

嘿,我正在嘗試向我的項目中的所有UINavigationBars添加陰影。我已經嘗試過在本網站和其他互聯網教程中推薦的一些東西,但沒有得到一個陰影堅持下去的運氣。我試圖把它使用我在Photoshop中創建一個陰影圖像,並呼籲在主要的appDelegate如下:IOS:無法將陰影添加到UINavigationBar

[[UINavigationBar appearance] setShadowImage:[UIImage imageNamed:@"shadowTest.png"]]; 

我已經出子類的UINavigationBar的,並試圖將財產從內部類中的分配awakeFromNib方法仍然沒有。然後我嘗試用<QuartzCore/QuartzCore.h>圖像框架手動創建陰影,但沒有發生任何事情。我使用子類來覆蓋drawRect方法,這是否會導致我的問題?這是UINavigationBar類,我最近嘗試讓陰影保持不變。

#import "BasicNavigationBar.h" 

@implementation BasicNavigationBar 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 

    if (self) 
    { 
     // Initialization code 
    } 
    return self; 
} 

- (void)awakeFromNib 
{ 
    [super awakeFromNib]; 

    // draw shadow 
    self.layer.masksToBounds = NO; 
    self.layer.shadowOffset = CGSizeMake(0, 3); 
    self.layer.shadowOpacity = 1.0; 
    self.layer.shadowColor = [UIColor blackColor].CGColor; 
    self.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds].CGPath; 
} 

- (void)drawRect:(CGRect)rect 
{ 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor); 
    CGContextFillRect(context, rect); 
} 

@end 

回答

1

setShadowImage如果不設置backgroundImage,也不起作用。

對於要顯示的自定義陰影圖像,還必須使用setBackgroundImage:forBarMetrics:方法設置自定義背景圖像。如果使用默認背景圖像,則將使用默認陰影圖像,而不管此屬性的值如何。

+0

這會解釋很多。我可以將背景圖像設置爲平坦白色,完全忘記子類別,然後在主代表中添加陰影圖像? – ScottOBot

+0

@ScottOBot沒錯。 – Sulthan