UINavigationBar颜色变化和阴影去除没有子类?

时间:2013-02-05 15:49:27

标签: iphone ios objective-c xcode uinavigationbar

我想将UINavigationBar的颜色更改为我选择的纯色。在IB中,我为Background和Tint属性添加了纯色。但是,酒吧下面有一个阴影。如何在不继承UINavigationBar的情况下删除它?如果没有,那么如何进行子类化呢?

2 个答案:

答案 0 :(得分:0)

我最后继承了UINavigationBar,如下所示:

#import <UIKit/UIKit.h>

@interface MyNavigationBar : UINavigationBar <UINavigationBarDelegate> {

}

@end

在.M文件中我覆盖了这个

- (void)drawRect:(CGRect)rect {
 UIColor * color = [UIColor colorWithRed:255/255.0f green:255/255.0f blue:255/255.0f alpha:1.0f];
 CGContextRef context = UIGraphicsGetCurrentContext();
 CGContextSetFillColor(context, CGColorGetComponents( [color CGColor]));
 CGContextFillRect(context, rect);
}  

注意:我出于某种原因无法使用[UIColor whiteColor] - 它默认为黑色,所以我最终使用了colorWithRed:green:blue:而不是。

对我来说效果很好。

答案 1 :(得分:0)

您可以将UINavigationBar的shadowImage设置为[[UIImage alloc] init]以删除阴影。这只适用于iOS 5.0+。