0

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

4

2 回答 2

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: 代替。

它对我来说效果很好。

于 2013-02-05T19:01:05.690 回答
0

您可以将 UINavigationBar 的 shadowImage 设置为 [[UIImage alloc] init] 以移除阴影。不过,这仅适用于 iOS 5.0+。

于 2013-02-06T06:25:16.687 回答