首页 文章

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

提问于
浏览
0

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

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:而不是 .

    它对我很有用 .

  • 0

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

相关问题