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