嘿,我正在尝试为项目中的所有 UINavigationBars 添加阴影。我已经尝试了一些在这个网站和其他互联网教程上推荐的东西,但是没有运气让阴影粘住。我尝试使用我在 Photoshop 中创建的阴影图像将其放入,并在主 appDelegate 中调用以下内容:
[[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